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;
Pour lister la taille de toutes les bases :
mysql> SELECT table_schema, round(sum(data_length+index_length)/1024/1024,4) AS "Size (MB)" FROM information_schema.tables GROUP BY table_schema;
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;
Salut ici !
perso, au lieu de :
– laisser le -pPassword qui va laisser une trace dans l’historique /!\
– taper à chaque fois le pwd
je fais –> mysql –defaults-file=/etc/mysql/debian.cnf
et hop ;)
Salut,
merci pour ces tips bien pratiques :)
Tu n’as pas de flattr pour que je puisse encourager ton blog de qualité ?
Merci encore !
@Tijof, merci pour l’astuce.
En effet, j’ai oublié de préciser de vider l’historique. Je vais intégrer ton astuce à la place.
Donc j’en conclue que tu n’acceptes pas de dons par flattr ? :)
A ma connaissance, pour restaurer la base de données, on ne peut pas passer par mysqldump, il faut utiliser mysql :
$ mysql -u user -p -D piwik_database < ~/mysql-piwik_database-backup.sql
Le "-D" permettant de préciser la base de données dans laquelle on souhaite restaurer la base de données