Modifier le mot de passe administrateur
Afin de modifier le mot de passe administrateur du serveur
MySQL?, il suffit de lancer la commande suivante :
- dpkg-reconfigure mysql-server-5.1
Deux écrans de configuration apparaitront permettant de choisir puis de confirmer le mot de passe.
Importer une base de donnée MySQL?
Afin dâ??importer une base de donnée sur un serveur
MySQL?, il suffit dâ??avoir à disposition un compte autorisé à créer des bases de données ainsi quâ??un fichier préalable exporté. Il suffit ensuite de lancer la commande :
- mysql -u utilisateur -p base_exportee < base_exportee.sql
Si vous avez exporté lâ??ensemble des bases de données de votre serveur dans le même fichier (voir plus bas dans cet article) en utilisant lâ??option --all-databases, la commande suivante permettra de ne réimporter quâ??une seule base une_base :
- mysql --one-database une_base < serveur.sql
Lâ??utilisation de lâ??option --one-database permet de ne réimporter que la base de donnée une_base contenue dans la sauvagarde serveur.sql.
Exporter des bases de donnée dans un fichier
La commande suivante exportera le contenu de lâ??ensemble des bases de données du serveur vers le fichier serveur.sql, le mot de passe de lâ??utilisateur (ici root) vous sera demandé :
- mysqldump --all-databases -u root -p > serveur.sql
Pour éviter la demande de mot de passe de lâ??utilisateur (utile lors de lâ??utilisation dans un script par exemple), il suffit de changer lâ??option -p en --password=mot_de_passe_root comme :
- mysqldump --all-databases -u root --password=mot_de_passe_root > serveur.sql
Pour nâ??exporter que le contenu dâ??une seule base, il est nécessaire de préciser son nom (par exemple ma_base ici) de la sorte :
- mysqldump -u root --password=mot_de_passe_root ma_base > ma_base.sql
Lister lâ??ensemble des bases de données du serveur
En SQL, pour connaitre lâ??ensemble des bases de données du serveur, la commande suivante est utilisée :
La commande mysql fournit la possibilité dâ??utiliser directement du SQL en utilisant lâ??option -e (execute) de la sorte :
- mysql -u root -p -e "show databases;"
Le résultat affiche quelque chose du genre :
- +
+
- | DATABASE |
- +
+
- | info_schema |
- | base1 |
- | base2 |
- | base3 |
- | base4 |
- | base5 |
- | base6 |
- +
+
Cela affiche le résultats brut de mysql. Pour lâ??utilisation simple dans un script on utilisera les options -B (qui enlève le formatage en colonne) et -s (qui enlève lâ??entête de colone). Ainsi la commande :
- mysql -u root --password=mot_de_passe_root -e "show databases;" -B -s
Elle affiche un résultat utilisable par un script sans demander de mot de passe, comme :
- information_schema
- base1
- base2
- base3
- ...
Exemple : petit script de sauvegarde de chaque base de donnée dans son propre fichier
Le script suivant sauvegardera, en suivant ce qui a été dit au dessus, chaque base dans son propre fichier. Copiez / collez son contenu dans le fichier save_dbs.sh par exemple en changeant les variables mysql_user et mysql_pass avec ce que vous souhaitez utiliser :
- #!/bin/bash
- mysql_user=root
- mysql_pass=mot_de_passe_root
- bases=`mysql -u $mysql_user --password=$mysql_pass -e "show databases;" -B -s |grep -v information_schema 2> /dev/null`
- if [ -z "$bases" ];then
- echo "Erreur d'accès ou pas de bases"
- exit 1
- fi
- echo "Début de la sauvegarde"
- for base in $bases
- do
- echo "Sauvegarde de $base..."
- mysqldump -u $mysql_user --password=$mysql_pass "$base" > $base.sql
- done
- echo "Sauvegarde terminée"
Vous pouvez ensuite lancer le script de la sorte pour le tester :
Ajouter des utilisateurs MySQL?*
Pour créer un utilisateur mysql, il suffit de se loguer Ã
MySQL? en tant quâ??utilisateur root et de lancer ensuite la commande SQL de création dâ??utilisateur.
Dans un premier temps, on se connecte au serveur
MySQL? en root :
Le mot de passe vous sera demandé. Cette étape peut être évitée en remplaçant lâ??option -p par --password=mot_de_passe_root
Puis on peut lancer la commande SQL de création dâ??utilisateur ("nouvel_user" avec un mot de passe "nouvel_user_mot_de_passe" auquel on donne tous les droits (uniquement depuis la machine, en localhost) :
- GRANT ALL PRIVILEGES ON *.* TO 'nouvel_user'@'localhost' IDENTIFIED BY 'nouvel_user_mot_de_passe' WITH GRANT OPTION;
Pour sortir de la commande Mysql, il suffit de taper exit et de valider.