GNU/Linux >> Tutoriels Linux >  >> Cent OS

FAQ sur le déploiement de MySQL

Qu'est-ce que MySQL ?

MySQL est un système de base de données relationnelle open source rapide, fiable, évolutif et facile à utiliser. Il est soutenu par Oracle. MySQL Server est conçu pour gérer des applications de production critiques à forte charge. Si vous développez des sites Web ou des applications Web, MySQL est un bon choix. MySQL est un composant essentiel de la pile LAMP, qui comprend Linux, Apache, MySQL et PHP.

Pourquoi utiliser la pile Bitnami MySQL ?

La pile Bitnami MySQL est toujours à jour et sécurisée. L'installation et la configuration de la pile sont entièrement automatisées, ce qui permet à tout le monde, y compris à ceux qui ne sont pas très techniques, de les mettre en place et de les faire fonctionner.

Tutoriels et documentation Bitnami MySQL

  • Page MySQL Bitnami
  • Guide de l'utilisateur de Bitnami MySQL
  • Journal des modifications de Bitnami MySQL
  • Pour créer une base de données et un utilisateur MySQL
  • Pour modifier le mot de passe de l'administrateur MySQL
  • Pour sécuriser MySQL
  • Pour effectuer un vidage et une restauration des sauvegardes MySQL
  • Pour configurer MySQL Workbench
  • Pour vérifier le fichier journal MySQL

Où trouver les informations d'identification racine MySQL ?

Les informations d'identification racine instance/nœud/machine seront envoyées à votre adresse e-mail enregistrée dès que l'instance MySQL est lancée.

Les informations d'identification MySQL sont stockées dans un fichier autonome. Pour obtenir les informations d'identification à tout moment, procédez comme suit :

  • Se connecter à l'instance/nœud/machine via SSH en utilisant root informations d'identification de l'utilisateur.
  • Exécutez la commande suivante pour obtenir les identifiants de votre application :
      cat /home/bitnami/bitnami_credentials

Remarque :Pour l'utilisateur MySQL est root, veuillez copier uniquement le mot de passe ci-dessus

Comment ouvrir le port MySQL 3306 à l'aide du pare-feu UFW

Par défaut, le port Bitnami MySQL est configuré pour être accessible uniquement en localhost. Pour ouvrir le port MySQL sur Internet ouvert ou uniquement sur des adresses IP spécifiques, veuillez suivre les étapes ci-dessous.

1.Connectez-vous à l'instance/nœud/machine via SSH en utilisant root informations d'identification de l'utilisateur.

Risque de sécurité :La création d'un port réseau de base de données sur l'Internet public présente un risque de sécurité important. Il est fortement conseillé d'ouvrir le port MySQL uniquement aux adresses IP de confiance.

2 (a) Exécutez la commande suivante pour ouvrir un port vers Internet :

      ufw allow mysql/tcp

2 (b) Exécutez la commande suivante pour ouvrir un port vers une adresse IP spécifique

      ufw allow from IPADDRESS to any port 3306 proto tcp

Comment connecter une base de données MySQL ?

Une fois que vous avez lancé votre Instance MySQL.Vous peut se connecter à la base de données à partir de la même instance en utilisant mysql outil client..

  • Se connecter à l'instance/nœud/machine via SSH en utilisant root informations d'identification de l'utilisateur.
           ssh root@<public IP>
  • Exécutez la commande suivante pour vous connecter à la base de données mysql
         # mysql -u root -p

Vous serez invité à saisir la racine mot de passe de l'utilisateur…

Comment autoriser l'accès à distance à MYSQL ?

Par défaut, MySQL n'autorise pas les clients distants à se connecter à la base de données MySQL. Si vous essayez d'accéder à distance à la base de données MYSQL de votre serveur, il est important que vous obteniez une réponse similaire à celle-ci :

“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server

Solution :

Pour surmonter cette erreur, vous pouvez autoriser un client spécifique ip -adresse (IP statique) pour accéder à la base de données MySQL exécutée sur un serveur. Vous devez exécuter la commande suivante sur le serveur qui exécute la base de données MySQL :

 $ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;

Remplacez « XXX.XXX.X.X » dans l'exemple ci-dessus par votre adresse IP statique et votre mot de passe racine à la place de « votre mot de passe racine ».

Remarque :Cela ne fonctionnera que si vous utilisez votre Internet sur un service basé sur une adresse IP statique.

Une adresse IP statique est un numéro attribué à un ordinateur par un fournisseur de services Internet (ISP) pour être son adresse permanente sur Internet.

L'exécution des commandes ci-dessus accordera l'accès à une adresse IP statique spécifique, à l'aide de laquelle MYSQL est accessible à distance.

Mettez également à jour les règles de pare-feu pour vous assurer que le port n° 3306 dans l'UFW est ouvert sur le serveur qui exécute mysql base de données.

Comment optimiser les performances de MySQL à l'aide de MySQLTuner

Outils qui peuvent aider à optimiser MySQL :

Afin de déterminer si votre base de données MySQL doit être reconfigurée, il est préférable d'examiner les performances actuelles de vos ressources. Cela peut être fait avec la commande top ou avec le service de surveillance d'E2E. À tout le moins, vous devriez vous familiariser avec l'utilisation de la RAM et du processeur de votre serveur, qui peut être découverte avec ces commandes :

#echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

MySQLTuner :

Le script MySQLTuner évalue votre MySQL installation, puis émet des suggestions pour augmenter les performances et la stabilité de votre serveur.

  • Pour installer mysqltuner , téléchargez le mysqltuner script .pl. Par exemple, vous pouvez le télécharger avec wget :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
  • Pour surveiller un serveur MySQL installé par une pile Bitnami, transmettez les valeurs de connexion via la ligne de commande, comme indiqué ci-dessous. Notez que vous aurez besoin que Perl soit installé sur le système.
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
  • Le script renverra des résultats similaires à la sortie ci-dessous :

MySQLTuner propose des suggestions sur la façon d'améliorer les performances de la base de données. Si vous hésitez à mettre à jour votre base de données par vous-même, suivre les suggestions de MySQLTuner est l'un des moyens les plus sûrs d'améliorer les performances de votre base de données.

Régler MySQL :

Lorsque vous modifiez la configuration de MySQL, soyez attentif aux changements et à la façon dont ils affectent votre base de données. Même en suivant les instructions de programmes tels que MySQLTuner, il est préférable d'avoir une certaine compréhension du processus.

Le fichier de configuration Bitnami MySQL stocké à l'emplacement suivant :/opt/bitnami/mysql/my.cnf.

Remarque :Avant de mettre à jour votre configuration MySQL, créez une sauvegarde de le my fichier .cnf :

    # cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup

Les meilleures pratiques suggèrent que vous apportiez des modifications, une à la fois, puis que vous surveilliez le serveur après chaque modification. Vous devez redémarrer MySQL après chaque modification :

Redémarrez le serveur :

     # /opt/bitnami/ctlscript.sh restart mysql

Lorsque vous modifiez des valeurs dans le fichier my.cnf, assurez-vous que la ligne que vous modifiez n'a pas été commentée avec le préfixe dièse (#).

key_buffer

Changer le key_buffer alloue plus de mémoire à MySQL, ce qui peut considérablement accélérer vos bases de données, en supposant que vous avez de la mémoire libre. La taille du key_buffer ne devrait généralement pas occuper plus de 25 % de la mémoire système lors de l'utilisation du moteur de table MyISAM, et jusqu'à 70 % pour InnoDB. Si la valeur est trop élevée, les ressources sont gaspillées.

Selon la documentation de MySQL, pour les serveurs avec 256 Mo (ou plus) de RAM avec de nombreuses tables, un paramètre de 64 Mo est recommandé. Les serveurs avec 128 Mo de RAM et moins de tables peuvent être définis sur 16 Mo, la valeur par défaut. Les sites Web avec encore moins de ressources et de tables peuvent avoir cette valeur inférieure.

max_allowed_packet

Ce paramètre vous permet de définir la taille maximale d'un paquet pouvant être envoyé. Un paquet est un état SQL unique, une seule ligne envoyée à un client ou un journal envoyé d'un maître à un esclave. Si vous savez que votre serveur MySQL va traiter de gros paquets, il est préférable d'augmenter cela à la taille de votre plus gros paquet. Si cette valeur était trop petite, vous recevriez une erreur dans votre journal des erreurs.

thread_stack

Cette valeur contient la taille de la pile pour chaque thread. MySQL considère que la valeur par défaut de la variable thread_stack est suffisante pour une utilisation normale ; cependant, si une erreur relative au thread_stack est consignée, cela peut être augmenté.

thread_cache_size

Si thread_cache_size est "désactivé" (défini sur 0), alors toute nouvelle connexion établie nécessite un nouveau thread créé pour elle. Lorsque les connexions se désengagent, le filetage est détruit. Sinon, cette valeur définit le nombre de threads inutilisés à stocker dans un cache jusqu'à ce qu'ils soient utilisés pour une connexion. Généralement, ce paramètre a peu d'effet sur les performances, sauf si vous recevez des centaines de connexions par minute, auquel cas cette valeur doit être augmentée afin que la majorité des connexions puissent être établies sur des threads mis en cache.

Pool de mémoire tampon InnoDB

Le pool de mémoire tampon InnoDB est l'espace mémoire qui contient de nombreuses structures de données en mémoire d'InnoDB, des tampons, des caches, des index et même des données de ligne. innodb_buffer_pool_size est le paramètre de configuration MySQL qui spécifie la quantité de mémoire allouée au pool de tampons InnoDB par MySQL. C'est l'un des paramètres les plus importants dans la configuration de l'hébergement MySQL et doit être configuré en fonction de la RAM système disponible.

80 % est peut-être un bon début et une règle empirique. Vous voulez vous assurer que le serveur dispose de suffisamment de RAM libre pour le système d'exploitation et la charge de travail généralement inconnue. Cependant, comme nous pouvons le voir ci-dessous, plus le serveur est grand, plus la règle finira par gaspiller de la RAM. Je pense que pour la plupart des gens, cela commence et se termine en règle générale, principalement parce que la modification du pool de mémoire tampon InnoDB nécessite un redémarrage dans les versions actuelles.

Total Server RAM Buffer pool with 80% rule Remaining RAM

1G                                 800 Mo           200 Mo

16G                               13G              3G

32G                                26G             6G

64G                                51G               13G

128G                              102G             26G

256G                             205G               51G

512G                              409G               103G

1024G                           819G                 205G

Alors, quelle est la meilleure règle de base ? Ma règle est que vous réglez le innodb_buffer_pool_size aussi grand que possible sans utiliser de swap lorsque le système exécute la charge de travail de production. Cela semble bien en principe, mais encore une fois, cela nécessite un tas de redémarrages et peut être plus facile à dire qu'à faire.

max_connexions

Ce paramètre définit le nombre maximal de connexions simultanées. Il est préférable de considérer le nombre maximum de connexions que vous avez eues dans le passé avant de définir ce nombre, vous aurez donc un tampon entre ce nombre supérieur et la valeur max_connections. Notez que cela n'indique pas le nombre maximum d'utilisateurs sur votre site Web à la fois ; il montre plutôt le nombre maximum d'utilisateurs faisant des demandes simultanément.

table_cache

Cette valeur doit être maintenue supérieure à votre valeur open_tables. Pour déterminer cette valeur, utilisez :

AFFICHER LE STATUT COMME 'open%' ;


Cent OS
  1. Optimiser la base de données MySQL

  2. Comment changer le classement de la base de données MySQL ?

  3. Comment copier une base de données MySQL

  4. Améliorer la mise en cache de la base de données MySQL

  5. Comment installer MySQL 8.0 sur CentOS/RHEL 8

Comment se connecter à MySQL en utilisant PHP

Comment supprimer les lignes en double dans MySQL

Liste des tables dans une base de données MySQL

Serveur de base de données MySQL

Comment créer une base de données dans MySQL

Présentation de MySQL