web-dev-qa-db-fra.com

Erreur lors de la suppression de la base de données (Impossible de rmdir '.test \', code d'erreur: 17)

En gros, on m'a appris à créer un mot de passe root à l'aide de la commande "mysqladmin -u root -p password", ceci a été fait tout au long de l'éditeur de commandes windows. Maintenant, le processus suivant consistait à afficher les bases de données par défaut (info. Schema, mysql et test), ce qui a été obtenu à l'aide de "SHOW DATABASES;"

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

Erreur lors de la suppression de la base de données (Impossible de rmdir '.test \', code d'erreur: 17)

La commande utilisée était DROP DATABASE test;

J'utilise MYSQL et PHPMYADMIN. Toute aide sur la façon de déposer le fichier sans erreurs? 

105
Sid

Une base de données est représentée par un répertoire sous le répertoire de données, lequel est destiné à stocker des données de table.

L'instruction DROP DATABASE supprimera tous les fichiers de table, puis supprimera le répertoire qui représentait la base de données. Cependant, il ne supprimera pas les fichiers non-table, rendant ainsi impossible la suppression du répertoire. 

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

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

142
Shakti Singh

J'ai rencontré ce même problème sur une nouvelle installation de mysql 5.5 sur un mac. J'ai essayé de supprimer le schéma de test et j'ai reçu un message d'erreur 17. errno 17 est l’erreur renvoyée par certaines fonctions posix os indiquant qu’un fichier existe là où il ne devrait pas. Dans le répertoire de données, j'ai trouvé un fichier étrange ".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 récupéré le fichier .empty, la commande drop database a réussi. 

Je ne sais pas d'où vient le fichier .empty; Comme indiqué, il s’agit d’une nouvelle installation de MySQL. Peut-être que quelque chose s'est mal passé lors du processus d'installation.

37
Beel

Allez dans datadir pour votre installation mysql et rmenez les bases de données manuellement. Ça peut être 

/usr/local/var/mysql

Ensuite,

rm -R <Your DB name>

Pour vérifier datadir pour votre installation,

vim the mysql.server file and find it there.
27
Nerve

Pour phpmyadmin, accédez à xampp\mysql\data et supprimez simplement le dossier de la base de données. Travaillé pour moi !!

Si c'est XAMPP, procédez comme suit:

cd /opt/lampp/var/mysql;
Sudo su;
rm -rf test;

J'espère que cela t'aides.

10
Nasif Md. Tanjim

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 entré dans C:\wamp\bin\mysql\mysql5.5.24\data\ et j'ai supprimé le dossier de la base de données en question.

Ensuite, j'ai actualisé la page sur phpMyAdmin, et la base de données avait disparu.

7
J86

Passez à travers cela et supprimez les fichiers cache correspondants dans la base de données sélectionnée, puis après vous pourrez supprimer votre base de données

Commencez par trouver votre répertoire de données MySQL contenant votre base de données sélectionnée

Linux

  • Ouvrez le fichier de configuration de MySQL: less /etc/my.cnf
  • Rechercher le terme "datadir":/datadir

  • S'il existe, il mettra en évidence une ligne qui lit: datadir = [chemin]

  • Vous pouvez également rechercher manuellement cette ligne. Il se trouverait typiquement dans un en-tête de section de [mysqld] mais il ne doit pas nécessairement être trouvé là.

  • Si cette ligne n'existe pas, MySQL utilisera par défaut: /var/lib/mysql.

Windows 1. Ouvrez le fichier de configuration de MySQL dans le Bloc-notes: my.ini

Le fichier my.ini sera situé dans le dossier du programme MySQL, où qu’il se trouve. Si vous n'avez pas installé MySQL, utilisez la fonction de recherche de Windows pour rechercher my.ini. Vous pouvez également le rechercher manuellement en accédant à [lecteur]:\Program Files\MySQL\MySQL Server 5.5.

  1. Effectuez une recherche dans le Bloc-notes pour trouver le terme "datadir".

  2. S'il existe, il mettra en évidence une ligne qui lit: datadir = [chemin]

  3. Vous pouvez également rechercher manuellement cette ligne. Il se trouverait typiquement dans un en-tête de section de [mysqld] mais il ne doit pas nécessairement être trouvé là.

  4. Si cette ligne n'existe pas, vous la trouverez probablement sous [lecteur]:\ProgramData\MySQL\MySQL Server 5.5\data.

Remarque: le dossier "ProgramData" peut être masqué. Vous devrez peut-être taper le chemin explicite dans Windows Explorer

1
Mewan

Pour ajouter aux réponses précédentes: Dans Windows 10, les fichiers de données sont conservés ici ...

C:\ProgramData\MySQL\Serveur MySQL [m.n]\data

Il y aura des répertoires pour chaque schéma dans votre base de données. Vous voudrez aller dans le schéma que vous essayez de supprimer, supprimez manuellement les fichiers superflus, puis réessayez la commande drop.

Toutes les modifications de l’atelier par rapport à une base de données seront stockées à cet emplacement. Par exemple, j'ai eu cette erreur après un exercice de reverse engineering sur l'une de mes bases de données et l'enregistrement des modifications stockées dans un fichier .mwb à cet emplacement.

1
IqbalHamid

Vous pouvez supprimer les données du répertoire SQL.

Pour moi, j'utilisais AMPPS sous Windows 10 . Je suis allé dans le répertoire d'installation de AMPP . Pour moi, c'était:

D:\Program Files (x86)\Ampps\mysql\data

parce que je l'ai installé sur mon lecteur secondaire.

Ensuite, actualisez votre client SQL et vous verrez qu'il est parti.

0
moeiscool

J'ai eu le même problème (mysql 5.6 sur mac) avec 'ne peut pas rmdir ..' - erreurs lors de la suppression des bases de données. Laisser un répertoire vide de la base de données impossible à éliminer. Merci @Framework et @Beel pour les solutions. 

J'ai d'abord supprimé le répertoire db du terminal dans (/ Applications/XAMPP/xamppfiles/var/mysql).

Pour d'autres abandons de base de données, j'ai également supprimé le fichier de test vide. Dans mon cas, le fichier s'appelait NOTEMPTY mais contenait toujours 0: 

Sudo ls -al test
total 0
drwxrwx---   3 _mysql  _mysql  102 Mar 26 16:50 .
drwxrwxr-x  18 _mysql  _mysql  612 Apr  7 13:34 ..
-rw-rw----   1 _mysql  _mysql    0 Jun 26  2013 NOTEMPTY

Chmod d'abord et ensuite 

Sudo rm -rf test/NOTEMPTY

Pas de problèmes pour supprimer des bases de données

0
user3857472

Dans mon cas, je n'ai vu aucune table dans ma base de données sur phpMyAdmin J'utilise Wamp server, mais lorsque j'ai vérifié le répertoire sous C:\wamp\bin\mysql\mysql5.6.12\data, j'ai trouvé ce employed.ibd lorsque j'ai supprimé ce fichier manuellement. J'ai pu drop la base de données de phpMyAdmin sans problème. . 

0
Yousef Altaf

Vous devrez peut-être vérifier deux choses.

1- Autorisation de Foleder de la base de données La base de données que vous souhaitez supprimer doit avoir le même propriétaire que le processus mysql.

2- Répertoire doit être vide Allez dans le répertoire de données mysql et vérifiez qu'il est vide

Après cela, connectez votre mysql cli et exécutez à nouveau la commande drop database.

0
Mansur Ali

allez simplement au répertoire de données dans mon chemin de cas est "wamp\bin\mysql\mysql5.6.17\data". 

0
sms247

Dans mon cas, le problème était un fichier de vidage résiduel dans le répertoire de la base de données. Ce fichier a probablement été généré lors d'un test de script de sauvegarde sur lequel j'avais déjà travaillé . Une fois le fichier supprimé manuellement, je pouvais alors supprimer la base de données.

0
Ranieri Machado