{{tag>sysadmin software mysql mariadb serveur config}} ====== Mysql: Configuration du serveur ====== Les variables globales permettant d'altérer la configuration sont accessibles depuis le client: show variables; Pour filtrer les résultats, la syntaxe suivante peut être utilisée: show variables like 'innodb_io_%'; Pour afficher la valeur de la variable globale **innodb_io_capacity**: select @@innodb_io_capacity Pour redéfinir la valeur d'une variable globale quelconque: set global innodb_io_capacity=4000; Pour définir les valeurs de façon permanente, modifier le fichier de configuration **/etc/mysql/conf.d/mysql.cnf**: [mysqld] innodb_io_capacity=4000 Tous les fichiers présents dans le dossier **/etc/mysql/conf.d** sont chargés au démarrage du daemon. Les configurations spécifiques peuvent être regroupées dans un fichier *.cnf créé dans ce dossier. ===== Déplacer le répertoire racine des bases de données ===== La variable **datadir** permet de définir le répertoire racine des fichiers de bases de données. Elle est présente par défaut dans le fichier de configuration ''/etc/mysql/mariadb.conf.d/50-server.cnf''. Pour modifier le répertoire racine : - Arrêter le service ; - Éditer la configuration ; - Déplacer les fichiers existants ; - Redémarrer le service. Arrêt du service : systemctl stop mariadb.service Redéfinition de la variable ''datadir'', création d'un fichier de configuration locale : cd /etc/mysql/mariadb.conf.d touch 99-local-server.cnf [mysqld] datadir = /srv/mysql Copier les fichiers de bases de données dans le nouveau répertoire (ici ''/srv/mysql'') : # Pour copier en conservant droits et propriétaires, on utilise rsync rsync -av /var/lib/mysql/ /srv/mysql On relance le service : systemctl start mariadb.service Depuis le client mysql, vérifier que les modification ont bien été prises en compte : SHOW VARIABLES LIKE '%datadir%'; +---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | datadir | /srv/mysql/ | +---------------+-------------+ Si tout s'est passé comme prévu, on peut supprimer les fichiers sources initiaux dans le répertoire ''/var/lib/mysql''. ===== Références ===== * [[https://www.howtogeek.com/tips/how-to-display-system-variables-for-your-mysql-server/|Comment afficher les variables système de mysql (howtogeek.com) ]] * [[https://stackoverflow.com/questions/1493722/mysql-command-for-showing-current-configuration-variables|Afficher les variables de configuration (stackoverflow.com)]]