2010-01-12 17 views
18

i utilisé le suivant syntaxe est incorrectecomment drop database

drop database filmo; 

et obtenu l'erreur suivante:

ERROR 1010 (HY000): Error dropping database (can't rmdir './filmo/', errno: 17) 

idées ..

+0

Quel est le moteur de base de données que vous utilisez? Ce n'est pas clair à cause de votre question. – gyurisc

+0

AskAboutGadgets.com: Voir les tags. – tanerkuc

+0

@enbuyukfener: Voir l'historique des modifications. – Jon

Répondre

23

Il signifie qu'il ya des fichiers dans ce répertoire ne se rapportant pas à MySQL. Un autre problème, bien que j'en doute, est l'insuffisance des autorisations. Vous pouvez supprimer ce répertoire du système de fichiers.

+1

J'ai eu la même erreur - et en effet il y avait un fichier dans ce répertoire - après l'avoir supprimé la suppression a travaillé. – zby

0

avez-vous des droits d'écriture sur ce répertoire (et le parent)? vous devrez peut-être récursivement écrire le répertoire (onglet de sécurité dans windows ou chmod dans nix) et supprimer tous les fichiers non-db comme "Thumbs.db"

11

La même erreur. Cela me fixe pour Ubuntu 10.04:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

Où XXXXX est le nom de la base incriminée.

+0

Travaillé pour moi sur un MAC ... mysql> drop database DB_NAME; ERREUR 1010 (HY000): Erreur lors de la suppression de la base de données (impossible de rmdir './DB_NAME', errno: 66) 1) mysql ->/usr/local/mysql/bin/mysql 2) Allez dans le dossier DB: cd/usr/local/mysql/data/ 3) Supprimer le dossier DB de la base de données avec le problème (dans ce cas: "DB_NAME"). – xgMz

+0

C'est exactement le datadir pour votre installation de mysql où vous trouverez le répertoire XXXXX. – Nerve

+0

A travaillé pour moi sur Ubuntu 12.04/MySQL 5.5.38 – DanH

1

J'ai modifié les autorisations sur le dossier mysql (Windows Server c:\xampp\mysql) et fonctionne maintenant, j'ai créé et supprimé des bases de données sans aucune erreur.

7

sudo rm -rf/var/lib/mysql/db_production

où db_production est le nom de la base de données

Rappelez-vous d'utiliser la commande "sudo".

0

J'ai eu ce problème et il semble que ce soit à propos de vos autorisations utilisateur mysql. essayer de le faire par l'utilisateur root si cela n'a utiliser cette commande en tant que root grande permission de déposer à votre utilisateur:

grant drop 
execute on *.* to 'your-user-name'@'user-ip'; 
1

C'est ce que je fais sur Mac OS X Mavericks:

  1. Stop the service MySQL
  2. Supprimez le répertoire à /usr/local/mysql/data
1

1) rm -rf /var/lib/mysql/data/*** conserver les données dir, rm le contenu des données/

2) utilisent

mysql -uxxx -pyyy 
    $ drop database data; 

alors il serait correct de recréer la base de données de données à nouveau. espérons que cela aidera, Attention, supprimer directement les données dir est inutile, tout ce que vous redémarrez mysqld ou non.

-2
drop database <database_name>; 
0

Voici une façon de simuler votre erreur

1.Créez un répertoire sur le répertoire de données MySQL

mkdir /data/mysql/data/filmo 

2.Vérifier le dernier élément

[[email protected]]# ls -ltrh /data/mysql/data/ 
总用量 173M 
-rw-rw---- 1 mysql mysql 48M 4月 17 11:00 ib_logfile1 
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 performance_schema 
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 mysql 
-rw-rw---- 1 mysql mysql 56 4月 18 06:01 auto.cnf 
drwxr-xr-x 2 root root 4.0K 4月 18 07:25 backup 
-rw-rw---- 1 mysql mysql 19 4月 23 07:29 mysql-bin.index 
-rw-rw---- 1 mysql mysql 5 4月 23 07:29 oldboylinux.pid 
-rw-rw---- 1 mysql mysql 19K 4月 23 07:29 error.log 
-rw-rw---- 1 mysql mysql 76M 4月 23 09:56 ibdata1 
-rw-rw---- 1 mysql mysql 48M 4月 23 09:56 ib_logfile0 
-rw-rw---- 1 mysql mysql 5.9K 4月 23 10:21 mysql-bin.000001 
drwxr-xr-x 2 root root 4.0K 4月 23 10:36 filmo 

3. créer un fichier de vidage

[[email protected]]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql 

4.MySQL croira filmo est une base de données

[[email protected]]# mysql -uroot -p123456 -e"show databases;" 

+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| backup    | 
| filmo    | 
| mysql    | 
| performance_schema | 
+--------------------+ 

5.Quand Je laisse tomber cette « base de données », voici votre erreur

[[email protected]]# mysql -uroot -p123456 -e"drop database filmo;" 
ERROR 1010 (HY000) at line 1: Error dropping database (can't rmdir './filmo/', errno: 17) 
0

Cette erreur survient généralement lorsque vous avez mal TABLESPACE dans le fichier ibdata1 (c'est pour le moteur innodb) innodb moteur stocker certains paramètres dans le fichier ibdata1

si vous avez récemment copié/déplacé vos fichiers sur un autre serveur ou essayé de restaurer alors vous devez déplacer le fichier ibdata1 ainsi vous pouvez supprimer le db. Je suppose que vous rencontrez un problème comme si la table n'existe pas et supprime maintenant db? si oui, arrêtez le service mysql puis supprimez les fichiers, puis créez à nouveau db, cela vous aidera. plus ici cela pourrait vous aider à [Error Dropping Database (Can't rmdir '.test\', errno: 17)

0

Je ne sais pas où je suis arrivé cette réponse de (excuses) mais, bien que similaire à ce qui précède, il a des informations supplémentaires de la façon de trouver le répertoire de données mysql:

mysql -e "select @@datadir"

Ceci, je suppose, est générique et renvoie le chemin vers mysql/data. Si vous passez à ce répertoire (unix/linux/commande Mac OS):

cd path_to_mysql/data

vous trouverez la base de données que vous souhaitez supprimer, qui, nix peut être fait par:

sudo rm -rf DB_NAME

Sur Mac OS X (10.9.5) J'ai fait pas dois arrêter MySQL, mais cela peut différer sur d'autres plateformes.