GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer le serveur MariaDB sur CentOS

L'article précédent couvrait une configuration de base du serveur MariaDB® sur CentOS Linux, y compris la définition du mot de passe root, la création d'une base de données et la création d'un utilisateur pour la base de données. Examinons maintenant MariaDB un peu plus en détail pour peaufiner sa configuration et être prêt en cas de problème.

Rechercher les fichiers de configuration

Par défaut, vous trouverez le fichier de configuration de MariaDB à l'emplacement suivant :

/etc/my.cnf

S'il n'y est pas, vous pouvez utiliser mysqld pour rechercher le fichier de configuration en exécutant la commande suivante :

/usr/libexec/mysqld --help --verbose

Vous obtiendrez beaucoup de texte en retour. La première partie décrit les options que vous pouvez envoyer au serveur lorsque vous le lancez. La deuxième partie est l'ensemble des informations de configuration définies lors de la compilation du serveur.

Près du début de la sortie, trouvez quelques lignes qui ressemblent aux lignes suivantes :

Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

Le serveur parcourt la liste jusqu'à ce qu'il trouve un fichier de configuration.

mon.cnf

Ouvrez le mon.cnf fichier et regardez à l'intérieur.

Toutes les lignes commençant par # sont des commentaires, et ils documentent principalement à quoi servent les différents paramètres. Vous trouverez des détails tels que l'emplacement des fichiers journaux et l'endroit où les fichiers de la base de données sont conservés.

Groupes de configuration

Il y a des lignes dans le fichier de configuration qui contiennent juste un mot entre crochets, comme [client] ou [mysqld] . Ce sont des groupes de configuration et ils indiquent aux programmes qui lisent le fichier de configuration à quelles parties ils doivent prêter attention.

MariaDB est techniquement une collection d'outils qui inclut le serveur (mysqld ), le client (mysql ), et quelques autres outils. Les programmes regardent dans my.cnf pour voir comment ils doivent se comporter.

Fondamentalement, le mysql la section de configuration contrôle le client et le mysqld section contrôle le serveur.

Fichiers journaux

Si quelque chose ne va pas, le meilleur endroit pour commencer à dépanner n'importe quel programme est ses journaux. Par défaut, MariaDB stocke ses fichiers journaux dans le répertoire suivant :

/var/log/mariadb

Remarque  :Vous devrez peut-être utiliser sudo pour obtenir une liste des fichiers de ce répertoire.

Si vous ne trouvez pas les journaux dans le répertoire par défaut, vous devez vérifier la configuration de MariaDB. Regardez dans le mon.cnf fichier et recherchez une log_error ligne, comme dans :

log_error = /var/log/mariadb/mariadb.log

Si vous ne voyez pas une telle ligne, créez-en une dans mysqld afin que MariaDB utilise son propre journal d'erreurs. Nous vous recommandons d'utiliser l'emplacement dans l'exemple et de créer le /var/log/mariadb répertoire s'il n'existe pas déjà. Appliquez la modification en redémarrant MariaDB avec la commande suivante :

systemctl restart mariadb

Assurez-vous que le répertoire de journal que vous choisissez peut être écrit par l'utilisateur contrôlant le processus MariaDB.

Paramètres réseau

Il peut y avoir un port paramètre dans les sections de configuration du client et du serveur. Le port sous la section serveur contrôle le port que le serveur écoute. Par défaut, il s'agit de 3306, mais vous pouvez le modifier à votre guise.

Le port dans la section client indique au client le port auquel se connecter par défaut. Vous voulez généralement que les deux paramètres de port correspondent.

Si vous ne voyez pas les entrées de port dans le fichier de configuration, cela signifie que les ports utilisent la valeur par défaut. Si vous souhaitez modifier le port, ajoutez les lignes dans les catégories appropriées, comme illustré dans l'exemple suivant :

[client]
port = 3306

[mysqld]
port = 3306

L'autre paramètre réseau à rechercher est l'adresse de liaison évaluer. Il est généralement défini sur l'adresse de localhost, 127.0.0.1. En se liant à l'hôte local, le serveur s'assure que personne ne peut s'y connecter depuis l'extérieur de la machine locale.

Si vous exécutez votre serveur MariaDB sur une machine différente de votre application, vous souhaitez vous lier à une adresse accessible à distance au lieu de l'hôte local. Modifier l'adresse de liaison paramètre pour correspondre à votre adresse IP publique (ou, mieux encore, à une adresse IP principale sur un réseau auquel moins de machines peuvent accéder).

Si vous ne voyez pas d'adresse de liaison entrée, vous devez en mettre une dans le mysqld catégorie pour aider à contrôler l'accès au serveur, similaire à l'exemple suivant :

[mysqld]
bind-address = 127.0.0.1

N'oubliez pas de tenir compte du nom d'hôte du client lorsque vous configurez les utilisateurs de votre base de données et de configurer votre pare-feu si vous exécutez iptables.

mysqld et mysqld_safe

Dans les coulisses, il existe en fait deux versions du serveur MariaDB, mysqld et mysqld_safe . Les deux lisent les mêmes sections de configuration. La principale différence est que mysqld_safe se lance avec quelques fonctionnalités de sécurité activées pour faciliter la récupération après un crash ou un autre problème.

Les deux mysqld et mysqld_safe lira les entrées de configuration dans mysqld section. Si vous incluez un mysqld_safe section, alors seulement mysqld_safe lit ces valeurs.

Par défaut le mysql le service lance mysqld_safe . Vous ne devriez changer cela que si vous êtes vraiment sûr de ce que vous faites.

mysqladmin

Le mysqladmin L'outil vous permet d'effectuer certaines fonctions administratives à partir de la ligne de commande. Cet outil n'est pas couvert dans cet article car cet article couvre les bases pour vous permettre d'être opérationnel. statut du serveur ou création et suppression de bases de données.

Sauvegardes

Lorsqu'il s'agit de faire des sauvegardes de vos bases de données (en dehors de l'approche de sauvegarde de toute la machine), vous avez quelques options. Les principales options sont la copie des fichiers de la base de données et l'utilisation de mysqldump .

Copie de fichier

Par défaut, MariaDB crée un répertoire pour chaque base de données dans son répertoire de données qui ressemble à l'exemple suivant :

/var/lib/mysql

Une fois que vous avez trouvé le répertoire de données, n'en faites pas une copie immédiatement. Lorsque le serveur de base de données est actif, il peut écrire de nouvelles valeurs dans les tables à tout moment. S'il écrit dans une table à mi-parcours de votre copie, certains fichiers seront modifiés et entraîneront une sauvegarde corrompue. Si vous essayez de planifier une reprise après sinistre, ce n'est pas une bonne chose.

Pour vous assurer que les fichiers de la base de données sont copiés proprement, arrêtez complètement le serveur MariaDB avant la copie. C'est sûr, mais ce n'est pas toujours idéal.

Une autre approche consiste à verrouiller la base de données en lecture seule pendant la durée de la copie. Ensuite, lorsque vous avez terminé, relâchez le verrou. De cette façon, vos applications peuvent toujours lire les données pendant que vous sauvegardez des fichiers.

Verrouillez les bases de données en lecture seule en exécutant la commande suivante à partir de la ligne de commande :

mysql -u root -p -e "FLUSH TABLES WITH READ LOCK;"

Pour déverrouiller la base de données lorsque vous avez terminé, exécutez cette commande :

mysql -u root -p -e "UNLOCK TABLES;"

Les options -e avec le mysql le client indique au client d'exécuter la requête entre guillemets comme si elle avait été saisie avec le mysql coque.

Si vous configurez ces commandes dans un script, vous pouvez mettre le mot de passe entre guillemets juste après -p sans espace entre les deux, comme dans l'exemple suivant :

mysql -u root -p"password" -e "FLUSH TABLES WITH READ LOCK;"
mysql -u root -p"password" -e "UNLOCK TABLES;"

Remarque : Assurez-vous de définir les autorisations sur ce fichier pour restreindre l'accès en lecture afin de protéger le mot de passe.

mysqldump

Une autre approche pour sauvegarder votre base de données consiste à utiliser le mysqldump outil. Plutôt que de copier directement les fichiers de la base de données, mysqldump génère un fichier texte qui représente la base de données. Par défaut, le fichier texte contient une liste d'instructions SQL que vous utiliseriez pour recréer la base de données, mais vous pouvez également exporter la base de données dans un autre format comme CSV ou XML. Vous pouvez lire le mysqldump page man pour voir toutes ses options.

Les instructions générées par mysqldump aller à la sortie standard.Vous souhaitez spécifier un fichier vers lequel rediriger la sortie lorsque vous l'exécutez.Par exemple :

mysqldump -u root -p demodb > dbbackup.sql

Cette commande indique à mysqldump pour recréer le demodb instructions inSQL de la base de données et de les écrire dans le fichier dbbackup.sql . Notez que les options de nom d'utilisateur et de mot de passe fonctionnent de la même manière que mysql client, vous pouvez donc inclure le mot de passe directement après -p dans un script.

Restauration depuis mysqldump

Restaurer une base de données copiée avec mysqldump ressemble à ce qui a été utilisé pour le créer, mais vous utilisez mysql au lieu de mysqldump , comme indiqué dans la commande suivante :

mysql -u root -p demodb < dbbackup.sql

Vous passez également de l'utilisation d'un signe supérieur à à un signe inférieur à, ce qui fait passer la commande de la redirection de sa sortie à l'instruction de lire son entrée à partir du fichier existant. L'entrée est envoyée au mysql commande et provoque les instructions dans la copie faite avec mysqldump pour recréer la base de données.

Par défaut, les instructions SQL générées s'ajoutent aux tables de base de données existantes sans les écraser. Si vous restaurez une sauvegarde sur une base de données existante, vous devez d'abord supprimer les tables de la base de données, ou supprimer et recréer la base de données elle-même. Vous pouvez modifier ce comportement en utilisant la –add-drop-table option avec la commande qui crée le mysqldump . Cela provoque mysqldump pour ajouter une commande aux fichiers de sauvegarde qu'il écrit qui supprime les tables avant de les recréer.

Moteur de base de données

Le dernier concept à couvrir dans cet article est le moteur de base de données .Le moteur est le processus qui se déroule dans les coulisses, en écrivant et en lisant des fichiers. Vous n'aurez généralement pas besoin de savoir quoi que ce soit d'autre que sa présence, mais parfois vous souhaitez exécuter une application qui a été optimisée pour un moteur de base de données particulier.

Le type de moteur est défini lors de la création d'une table. Les tables sont généralement créées par l'application qui va les utiliser.

Pour voir le moteur utilisé par les tables de votre base de données, vous pouvez exécuter la commande suivante dans le shell MariaDB, en changeant demodb au nom de votre base de données :

SHOW TABLE STATUS FROM demodb;

Choisir un moteur

Idéalement, vous n'aurez pas besoin de choisir un moteur. Si vous n'êtes pas très familier avec MariaDB, c'est le moyen le plus sûr de procéder. Laissez l'application gérer cela, et si vous écrivez l'application, utilisez le moteur par défaut jusqu'à ce que vous soyez plus à l'aise avec vos options.

Les moteurs de base de données les plus souvent utilisés avec MariaDB sont MyISAM etInnoDB .

MonISAM

Parce que MyISAM a été la valeur par défaut dans MySQL pendant un certain temps, c'est le plus compatible avec MariaDB. Certains types de recherches fonctionnent mieux sur MyISAM qu'InnoDB. Ce n'est pas parce qu'il est le plus ancien des deux qu'il ne peut pas être le meilleur pour un type d'application donné.

InnoDB

InnoDB est plus tolérant aux pannes que MyISAM et gère les pannes et la récupération avec un risque beaucoup plus faible de corruption de la base de données. C'est une bonne chose.

Cependant, pour de meilleures performances, InnoDB nécessite de nombreux ajustements pour votre environnement et vos modèles d'accès. Si vous avez un administrateur de base de données, ce travail ne posera peut-être pas de problème. Mais si vous êtes un développeur qui souhaite qu'une base de données soit opérationnelle pour un serveur de test, vous ne voudrez probablement pas vous occuper du réglage d'InnoDB.

Résumé

À ce stade, vous devriez avoir une bonne compréhension de MariaDB. Pour plus d'informations, consultez le site de documentation de MariaDB.


Linux
  1. Installation de MariaDB sur CentOS 7

  2. Installez MariaDB 10.0 sur CentOS 6

  3. Installer MariaDB sur le serveur CentOS 7 - Processus étape par étape ?

  4. Installer un serveur MariaDB sur CentOS

  5. Centos 7 :Installer, Configurer, Gérer

Comment configurer NGINX sur un serveur CentOS 7

Comment installer et configurer Subversion (SVN) sur CentOS 7

Comment installer et configurer le serveur Sandstorm sur CentOS 8

Comment installer et configurer Privoxy Server sur CentOS 8

Comment configurer le serveur VNC sur CentOS/RHEL 6

Centos 7 :Configurer le serveur NTP