{{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)]]