136 votes

Erreur lors de la suppression de la base de données (Can't rmdir '.test\', errno : 17)

En gros, on m'a appris à créer un mot de passe Root à l'aide de la commande "mysqladmin -u Root -p password", le tout via l'éditeur de commandes de Windows. Maintenant, le processus suivant consistait à afficher les bases de données par défaut (info. schema, mysql et test), ce qui a été réalisé en utilisant "SHOW DATABASES ;".

Mais selon le livre, nous avons dû supprimer le fichier de test redondant et l'erreur suivante s'est produite :

Erreur lors de la suppression de la base de données (Can't rmdir '.test\', errno : 17)

La commande utilisée était DROP DATABASE test;

J'utilise MYSQL et PHPMYADMIN. Avez-vous de l'aide pour déposer le fichier sans erreur ?

0 votes

L'utilisateur de MySQL possède-t-il bien la propriété du répertoire de données correspondant ?

0 votes

Mise à jour. J'ai créé une nouvelle base de données à partir de PHPMYADMIN et utilisé la commande dans l'éditeur de commandes, cela a fonctionné sans que l'erreur apparaisse cette fois. Edit : Middaparka, je n'ai vraiment pas encore touché à cette partie. Je ne sais pas, par défaut, quelles sont les autorisations données.

0 votes

Je suppose que les nouvelles versions de MySQL ne suppriment pas vraiment la base de données TEST. Essayez plutôt de supprimer le dossier "TEST" dans votre répertoire/bin mysql, c'est juste une autre solution à ajouter à votre processus d'apprentissage......

174voto

Framework Points 32799

Une base de données est représentée par un répertoire sous le répertoire de données (généralement /var/lib/mysql ), et le répertoire est destiné au stockage des données de la table.

Le site DROP DATABASE supprimera tous les fichiers de table, puis le répertoire qui représentait la base de données. Cependant, elle ne supprimera pas les fichiers autres que ceux des tables, ce qui rendra impossible la suppression du répertoire.

MySQL affiche un message d'erreur lorsqu'il ne peut pas supprimer le répertoire

vous pouvez vraiment abandonner la base de données manuellement en supprimant tous les fichiers restants dans le répertoire de la base de données, puis le répertoire lui-même.

1 votes

Merci, Shakti Singh. J'ai supprimé la table de 'test' en visitant PHPMYADMIN, mais je voulais vraiment le faire via l'éditeur de commandes. Je suppose que j'ai essayé de supprimer le même fichier encore et encore, donc l'erreur. J'ai créé une nouvelle BD et j'ai entré la commande DROP DATABASE, ça a marché !

2 votes

Notez que vous ne pouvez réellement supprimer le répertoire vous-même que si la base de données ne comporte que des tables MyISAM.

0 votes

Dans mon cas, j'ai dû logout et ensuite login encore, pour voir que la base de données a disparu.

37voto

Beel Points 582

J'ai rencontré le même problème lors d'une nouvelle installation de mysql 5.5 sur un Mac. J'ai essayé de déposer le schéma de test et j'ai obtenu un message errno 17. errno 17 est l'erreur renvoyée par certaines fonctions os posix indiquant qu'un fichier existe là où il ne devrait pas. Dans le répertoire de données, j'ai trouvé un étrange fichier ".empty" :

sh-3.2# ls -la data/test
total 0
drwxr-xr-x   3 _mysql  wheel  102 Apr 15 12:36 .
drwxr-xr-x  11 _mysql  wheel  374 Apr 15 12:28 ..
-rw-r--r--   1 _mysql  wheel    0 Mar 31 10:19 .empty

Une fois que j'ai effacé le fichier .empty, la commande de suppression de la base de données a réussi.

Je ne sais pas d'où vient le fichier .empty ; comme indiqué, il s'agissait d'une nouvelle installation de mysql. Peut-être que quelque chose s'est mal passé dans le processus d'installation.

3 votes

Voir Bogue MySQL #62443 . Il s'agit d'un bogue MySQL introduit vers la version 5.5.11 en raison d'une limitation de cmake. Comme vous l'avez dit, une solution de contournement consiste à supprimer les données \test\.empty

2 votes

Dans Windows pour moi c'était : C:\wamp\bin\mysql\mysql5.5.24\data\test\

36voto

Nerve Points 1181

Allez dans le répertoire de données de votre installation mysql et rm les bases de données manuellement. Cela peut être

/usr/local/var/mysql

Ensuite,

rm -R <Your DB name>

Pour vérifier le datadir de votre installation,

vim the mysql.server file and find it there.

7 votes

Je suis sous linux mint avec mysql 5.5.34-0ubuntu0.13.04.1 et ils le stockent sous /var/lib/mysql. Je suis sûr que c'est différent pour différentes distros.

1 votes

Merci de m'avoir fait savoir où était le répertoire ! !!

0 votes

Cela fonctionne pour moi :)

24voto

Pour phpmyadmin Allez sur xampp \mysql\data et supprimez simplement le dossier de la base de données. Cela a marché pour moi !

8voto

Ciwan Points 1292

Je viens de rencontrer ce problème avec WAMP et le phpMyAdmin qui l'accompagne. Pour supprimer la base de données et faire disparaître l'erreur. Je suis allé dans C:\wamp\bin\mysql\mysql5.5.24\data\ et supprimé le dossier de la base de données en question.

Puis j'ai rafraîchi la page dans phpMyAdmin, et la base de données avait disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X