web-dev-qa-db-fra.com

Impossible de vider les tables mysql en local

J'essayais de vider ma table mysql en utilisant la commande ci-dessous

mysqldump --tab=/home/username/Desktop/basic/ --user myusername -p mysql user;

Mais il a renvoyé une erreur disant

mysqldump: Got error: 1: Can't create/write to file '/home/username/Desktop/basic/user.txt' (Errcode: 13) when executing 'SELECT INTO OUTFILE'

J'utilise Ubuntu 14.04. J'ai essayé de désactiver l'apparmeur comme expliqué ici . Mais l'erreur existe toujours. D'autres solutions?

Modifier

J'obtiens le fichier .sql mais pas le fichier .txt

1

Assurez-vous d'abord que mysql peut écrire dans /home/username/Desktop/basic/; si vous prévoyez de faire plusieurs vidages dans le même répertoire, une façon assez simple de le faire serait de définir la propriété du dossier sur mysql et de définir l'autorisation SGID sur le dossier (grâce à muru pour cette suggestion): de cette façon mysqldump pourra écrire dans le dossier, mais les nouveaux fichiers hériteront du groupe du répertoire parent; cela a l'avantage de laisser à votre utilisateur des droits de lecture, d'écriture et d'exécution sur les vidages.

Sudo chown mysql /home/username/Desktop/basic/ && Sudo chmod g+s /home/username/Desktop/basic/

De plus, assurez-vous qu'aucun fichier nommé user.sql ou user.txt présent dans le répertoire cible avant d'émettre la commande; si mysql ne peut pas écrire dans le répertoire cible ou si un fichier portant le même nom que l'un des fichiers de sortie attendus existe avant d'émettre la commande, mysqldump va échouer.

1
kos