web-dev-qa-db-fra.com

comment supprimer la base de données

j'ai utilisé la syntaxe suivante 

drop database filmo; 

et a obtenu l'erreur suivante:

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

des idées..

18
devang

Cela signifie qu'il y a des fichiers dans ce répertoire qui ne concernent pas MySQL. Un autre problème, même si j'en doute, est le manque d'autorisations. Vous pouvez supprimer ce répertoire du système de fichiers.

23
tanerkay

J'ai la même erreur. Cela a résolu le problème dans Ubuntu 10.04:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

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

12
Alex R

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

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

N'oubliez pas d'utiliser "Sudo". 

7
Jones Agyemang

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

1
Anghel Florin

1) rm -rf /var/lib/mysql/data/*** conserve le répertoire de données, rm le contenu des données/

2) utiliser

 mysql -uxxx -pyyy
   $ drop database data;

alors il serait correct de recréer à nouveau la base de données . J'espère que cela vous aidera, Attention, la suppression directe du répertoire de données est inutile , quoi que vous redémarriez ou non avec mysqld.

1
gandy

Voici ce que je fais sur Mac OS X Mavericks:

  1. Arrêtez le service MySQL
  2. Supprimer le répertoire à /usr/local/mysql/data
1
Higo Matos

J'ai eu ce problème et cela semble concerner vos autorisations utilisateur mysql. Essayez de le faire par l'utilisateur root s'il fonctionne, utilisez cette commande en tant qu'utilisateur root pour autoriser l'utilisateur à supprimer:

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

Voici un moyen de simuler votre erreur

1.créer un répertoire sur le répertoire de données MySQL

mkdir /data/mysql/data/filmo

2.check le dernier article

[root@linux]# 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 dedans

[root@linux]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql

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

[root@linux]# 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

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

Je ne sais pas d'où j'ai tiré cette réponse (excuses), mais, bien que semblable à ce qui précède, il contient des informations supplémentaires sur la manière 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 accédez à ce répertoire (commande unix/linux/macOS):

cd path_to_ mysql/data

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

Sudo rm -rf DB_NAME

Sur MacOS X (10.9.5), je n’ai pas pas dû arrêter MySQL, mais cela peut différer sur d’autres plateformes.

0
David

avez-vous une permission d'écriture sur ce répertoire (et le parent)? vous devrez peut-être rendre le répertoire accessible en écriture (onglet Sécurité dans Windows ou chmod dans Nix) et supprimer tous les fichiers autres que de la base de données tels que "Thumbs.db"

0
jspcal

Cette erreur survient généralement lorsque vous avez un fichier TABLESPACE incorrect dans le fichier ibdata1 (c'est pour le moteur innodb) Le moteur innodb stocke 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, vous devez également déplacer le fichier ibdata1, vous pouvez alors supprimer la base de données. Je suppose que vous rencontrez un problème tel que le tableau n'existe pas et que vous le supprimez maintenant. db? Si c'est le cas, arrêtez le service mysql, supprimez les fichiers, puis créez à nouveau la base de données, cela vous aidera. De plus, cela pourrait vous aider [ Erreur lors de la suppression de la base de données (Impossible de rmdir '.test \', errno: 17)

0
Raj Talreja