GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible de sortir les données MySQL dans le fichier

Selon la documentation MySQL sur SELECT ... INTO OUTFILE

Tout fichier créé par INTO OUTFILE ou INTO DUMPFILE est accessible en écriture par tous les utilisateurs sur le serveur hôte. La raison en est que le serveur MySQL ne peut pas créer un fichier appartenant à quelqu'un d'autre que l'utilisateur sous le compte duquel il s'exécute. (Vous ne devriez jamais exécuter mysqld en tant que root pour cela et d'autres raisons.) Le fichier doit donc être accessible en écriture par tout le monde afin que vous puissiez manipuler son contenu.

Vous devez sortir le SELECT INTO OUTFILE à /var/lib/mysql comme suit

SELECT * FROM data INTO OUTFILE 'data.csv';

Bien sûr, vous devez vous assurer que vous disposez de l'autorisation FILE sur [email protected]

Il existe deux façons d'obtenir cette autorisation

MÉTHODE #1

GRANT FILE ON *.* TO 'gs'@'localhost';

MÉTHODE #2

UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;

MISE À JOUR 2012-05-01 07:09 EDT

Pour vous accorder le privilège FILE, procédez comme suit :

service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
exit
service mysql restart

Linux
  1. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  2. Comment stocker la sortie de SHOW PROCESSLIST dans un fichier MySQL ?

  3. Capturer la sortie nethogs dans le fichier journal

  4. améliorer la vitesse d'importation mysql

  5. Valider les données dans un conteneur mysql

Types de données MySQL

Bash :Écrire dans un fichier

PHP MySQL Sélectionner les données

Redirection d'entrée/sortie sous Linux/Unix

Cacher des données dans les systèmes de fichiers ?

Récupération de données Ext4 ?