Recommandations :
innodb_buffer_pool_size à 80% de la mémoire disponibleinnodb_file_per_table à 1 pour avoir un fichier par tableExemple :
[mysqld]
innodb_buffer_pool_size = 800M
innodb_file_per_table = 1
Lister les processus :
$ mysqladmin processlist -uroot -p
Tuer un processus :
$ mysqladmin kill PROCESS_ID
Afficher la liste des utilisateurs :
SELECT host,user,password FROM mysql.user;
Afficher les droits d’un utilisateur :
SHOW GRANTS FOR 'username'@'hostname';
Supprimer un utilisateur :
DROP USER 'username'@'hostname';
Ajouter un utilisateur :
CREATE USER 'username'@'hostname' IDENTIFIED BY 'toto';
Modifier le mot de passe d’un utilisateur :
SET PASSWORD FOR 'username'@'hostname' = PASSWORD('my-password')
Sécuriser après une installation :
# /usr/bin/mysql_secure_installation
Démarrer MySQL en utilisant les Recovery Modes. On démarre à 1, si la base de données crash toujours, on augmente ce nombre jusqu’à ce que la base de données démarre. Dans le fichier de configuration de MySQL :
[mysqld]
innodb_force_recovery = 2
A partir de là, on peut chercher une table incohérente qui pourrait causer le crash :
$ mysqlcheck --all-databases -p
Si toutes les tables sont valides, on peut tenter un backup/restore de la DB complète.
Sauvegarder toute la base de données :
$ mysqldump --all-databases -p"$ROOT_PASSWORD" > dump.sql
Restaurer toutes les données (Attention : cette commande détruira les tables et les recréera si elles existent) :
$ mysql -p"$ROOT_PASSWORD" < dump.sql
Pour valider la réplication sur un noeud utilisant WSREP :
SHOW STATUS LIKE 'wsrep%';
Vérifier les champs :
wsrep_local_state_commentwsrep_incoming_addresseswsrep_desync_countUtilisation du mysqld_exporter avec des dashboard proposés par Percona.