MySql Administration
Cet article présente différentes opérations d'administration de MySql
.
Sommaire
Gestion des bases
Création
La création d'une base de données s'effectue à l'aide de la requête suivante, après connexion avec un compte possédant les droits suffisants:
mysql> CREATE DATABASE dbName CHARACTER SET latin1;
Query OK, 1 row affected (0.03 sec)
mysql>
Dans cet exemple, une base de données de nom dbName
est créé avec l'encoding latin1
.
Backup et Restore
Utilisateur
Dans le cadre des sauvegardes, il est recommandé de ne pas lancer les scripts en root, mais d'utiliser un compte spécifique pour cela. La commande suivante permet de créer le compte backup
, avec les privilèges minimum:
- SHOW DATABASES
- SHOW VIEW
- SELECT
- LOCK TABLES
- RELOAD
GRANT SHOW DATABASES, SHOW VIEW, SELECT, LOCK TABLES, RELOAD ON *.* to backup@localhost IDENTIFIED BY '<PASSWORD>'; FLUSH PRIVILEGES;
Où <PASSWORD>
doit être remplacé par le mot de passe souhaité pour le compte backup
.
Backup
La sauvegarde complète d'une base de données s'effectue à l'aide de la commande:
/usr/bin/mysqldump -u root -p --default-character-set=latin1 -c --skip-set-charset dbName > dump.sql
Dans cet exemple, la sauvegarde s'effectue avec les paramètres suivants:
- Base de données
dbName
- Encoding
latin1
- Compte de connexion
root
- Compression, option -c
- Instruction sur l'encoding des tables est échappé.
- Sauvegarde de la base dbName
- Sauvegarde dans le fichier dump.sql
Cette commande va créer un script SQL avec toutes les requêtes permettant de recréer la table.
Restore
La restauration s'effectue en chargeant les requêtes générées par la procédure de backup. Pour cela, il faut lancer la commande suivante:
mysql -u root -p --default-character-set=utf8 dbName < dump.sql
Dans cet exemple, la sauvegarde s'effectue avec les paramètres suivants:
- Base de données
dbName
- Encoding
utf8
- Compte de connexion
root
- Chargement du fichier dump.sql
Auto MySQL Backup
Suppression
La suppression d'une base de données s'effectue avec la requête:
mysql> drop database dbName;
Query OK, 0 rows affected (0.02 sec)
mysql>