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.