Exporter le résultat d’une requête MYSQL dans un fichier

  • Se connecter à MYSQL:

mysql --defaults-file=/etc/mysql/debian.cnf (avec l’utilisateur debian-sys-maint)

ou

mysql -uroot -ppassword (utilisateur root)

  • Sélectionner la base de données:

mysql> use base_de_données;

  • Exécuter la requête:

mysql> select * from table  INTO OUTFILE '/tmp/resultat.txt';

Pour l’erreur:

ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement

Vérifier la variable secure_file_priv:

mysql> use mysql;

mysql> SHOW VARIABLES LIKE ''secure_file_priv';
+——————+———————–+
| Variable_name | Value |
+——————+———————–+
| secure_file_priv | /var/lib/mysql-files/ |
+——————+———————–+

Utiliser le chemin /var/lib/mysql-files/:

mysql> select * from table  INTO OUTFILE '/var/lib/mysql-files/resultat.txt';

ou

désactiver la restriction:

Ajouter la ligne suivante dans le fichier /etc/mysql/my.cnf

[mysqld]

secure-file-priv = ""

redémarrer mysql :

service mysql restart

mysql> SHOW VARIABLES LIKE 'secure_file_priv';
+——————+——-+
| Variable_name | Value |
+——————+——-+
| secure_file_priv | |
+——————+——-+