Mini guide MySQL
Je mets ici mon anti-sèche pour mes besoins basiques de MySQL, à savoir gérer des sites WordPress, Owncloud, Piwik, etc…
Prise en main
Un super utilisateur nommé « debian-sys-maint » est créé par Debian pour administrer MySQL. Son mot de passe se trouve dans le fichier /etc/mysql/debian.cnf# cat /etc/mysql/debian.cnf
On peut se connecter à MySQL avec l’une des solutions suivantes :
- Mot de passe interactif :
$ mysql -u debian-sys-maint -p
- Mot de passe en chargeant le mot de passe directement depuis le fichier:
# mysql --defaults-file=/etc/mysql/debian.cnf
- Mot de passe avec le mot de passe dans la ligne de commande (déconseillé, le mot de passe se trouvant alors dans l’historique):
$ mysqldump --user=debian-sys-maint --password=MOTDEPASSE
Vous devriez avoir l’invite de commande MySQL:mysql>
Pour quitter MySQL à tout moment:mysql> exit
On va maintenant pouvoir lancer des commandes, chaque commande se termine par le caractère ‘;‘, ne l’oubliez pas.
Pour lister toutes les bases de données présentes:mysql> SHOW databases;
Pour lister tous les utilisateurs:mysql> SELECT User,Host FROM mysql.user;
Procédure pour installer un nouveau site web facilement
Souvent, il vous arrivera pour installer un nouveau service (WordPress, Owncloud, Piwik, etc…) de devoir créer une nouvelle base de données et un nouvel utilisateur ayant tous les droits sur celle ci. Voyons comment faire ca.
Comme nous allons créer un nouvel utilisateur et son mot de passe, je vous invite générer un bon de mot de passe en suivant ce guide avant de commencer.
Ensuite, un fois connecté à MySQL :
Créez un nouvel utilisateur en utilisant le mot de passe généré:mysql> CREATE USER 'piwik_user'@'localhost' IDENTIFIED BY 'mot_de_passe_complique';
Créez une nouvelle base de donnée:mysql> CREATE DATABASE piwik_database;
Donnez les permissions à l’utilsateur sur la base de données:mysql> GRANT ALL ON piwik_database.* TO 'piwik_user'@'localhost';
Appliquez les privilèges:mysql> FLUSH PRIVILEGES;
Fini !mysql> exit;
Et voila, vous êtes bon. C’était pas si dur :-)
Sauvegarde et restauration
Une chose super indispensable à savoir aussi, sauvegarder sa base de donnée. Car on ne peut pas récupérer les données sans que MySQL tourne. Donc il faut penser à bien faire ses sauvegardes tant que MySQL fonctionne.
$ mysqldump --user=debian-sys-maint --password=MOTDEPASSE piwik_database > ~/mysql-piwik_database-backup.sql
Pour restaurer:
$ mysqldump --user=debian-sys-maint --password=MOTDEPASSE piwik_database < ~/mysql-piwik_database-backup.sql
Si vous réimportez la base de données dans un MySQL vierge (ex: résintallation de PC), il faut aussi penser à re-créer les utilisateurs (cf guide ci-dessus) :$ mysql --user=debian-sys-maint --password=MOTDEPASSE
mysql> CREATE USER 'piwik_user'@'localhost' IDENTIFIED BY 'mot_de_passe_complique';
mysql> GRANT ALL ON piwik_database.* TO 'piwik_user'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit;