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
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.