Ceci est une ancienne révision du document !
Table des matières
Outils
Export 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-databaseajoute une requête de suppression de base avant chaque requête de création de base.--skip-commentsn'ajoute pas les commentaires dans le fichier généré.--complete-insertgénère des requêtes d'insertion contenant les noms de colonnes.--disable-keysajoute 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-insertutilise la syntaxe multi-lignes pour les requêtes d'insertion.--routinesextrait les procédures stockées et les fonctions des bases de données sauvegardées.--hostindique l'hôte de la base de donnée à utiliser.--passwordindique le mot de passe à utiliser.--userindique l'utilisateur à utiliser.--result-fileindique le nom du fichier à générer.--databasesindique 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.
Export 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.
Import 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>
--passwordindique le mot de passe à utiliser.--userindique l'utilisateur à utiliser.--databaseindique 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
