Table des matières
Outils
Exportation d'une base de données
Il est possible de le faire avec PhpMyAdmin mais c'est très long et pas forcément fiable. Il vaut mieux utiliser l'outil mysqldump installé en même temps que mysql. Voici un exemple d'utilisation :
mysqldump --add-drop-database --skip-comments --complete-insert --disable-keys --extended-insert --routines --host=<hostname> --password --user=<username> --result-file=<filename> --databases <database>
--add-drop-database
ajoute une requête de suppression de base avant chaque requête de création de base.--skip-comments
n'ajoute pas les commentaires dans le fichier généré.--complete-insert
génère des requêtes d'insertion contenant les noms de colonnes.--disable-keys
ajoute une requête pour désactiver les clés avant la requête d'insertion et une requête pour activer les clés après.--extended-insert
utilise la syntaxe multi-lignes pour les requêtes d'insertion.--routines
extrait les procédures stockées et les fonctions des bases de données sauvegardées.--host
indique l'hôte de la base de donnée à utiliser.--password
indique le mot de passe à utiliser.--user
indique l'utilisateur à utiliser.--result-file
indique le nom du fichier à générer.--databases
indique que les arguments sont des bases et ajoute les requêtes de création de base.
Pour plus d'option, il faut regarder dans la documentation officielle.
Exportation d'une table
Comme pour l'exportation d'une base de données, il est possible de le faire avec PhpMyAdmin mais il vaut mieux utiliser directement mysql. Voici un exemple d'utilisation :
mysqldump --skip-comments --complete-insert --disable-keys --extended-insert --host=<hostname> --password --user=<username> --result-file=<filename> --single-transaction <database> <table 1> [<table 2> <table 3>]
Utilisation du client
Affichage des options utilisées par défaut
mysql --print-defaults
Ouverture d'une connexion
mysql --user=<username> --password --host=<hostname>
Depuis la version 5.6.7, l'option secure-auth
est activé par défaut.
Il faut la désactiver cette option en utilisant l'option skip-secure-auth
si l'erreur suivante apparait :
ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
S'il y a des options inconnues dans les fichiers de configuration, l'ouverture de la connexion échouera. Pour ne pas utiliser ces options, il faut utiliser l'option no-defaults
.
Il faut noter que le fichier .mylogin.cnf
est chargé quoiqu'il arrive.
Importation de base de données
Comme pour l'exportation d'une base de données, il est possible de le faire avec PhpMyAdmin mais il vaut mieux utiliser directement mysql. Voici un exemple d'utilisation :
# avec une redirection mysql --password --user=<username> --database=<database> < <filename> # avec un "pipe" cat <filename> | mysql --password --user=<username> --database=<database>
--password
indique le mot de passe à utiliser.--user
indique l'utilisateur à utiliser.--database
indique la base de données à utiliser.
Changement du mot de passe root (Ubuntu 16.04)
Sur Ubuntu 16.04, le mécanisme de gestion des mots de passe ne permet pas d'avoir un mot de passe vide lors de l'installation. Pour pouvoir quand même utiliser un mot de passe vide, il faut réaliser les quelques manipulations suivantes :
# Arrêt de mysql sudo service mysql stop # Démarrage de mysql en "safe-mode" sudo mysqld_safe --skip-grant-tables & # Mise à jour du mot de passe mysql -u root -e 'update user set authentication_string="" where User="root"' mysql # Mise à jour du mécanisme de gestion des mots de passe mysql -u root -e 'update user set plugin="mysql_native_password" where User="root"' mysql # Remise à zéro des privilèges mysql -u root -e 'FLUSH PRIVILEGES' mysql # Démarrage de mysql sudo service mysql start
Cette manipulation n'est pas recommandée et sera à refaire à chaque mise à jour de MySql