Outils pour utilisateurs

Outils du site


informatique:mysql:tools

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

informatique/mysql/tools.txt · Dernière modification : 2022/09/22 19:12 de alexis