Как удалить базу данных

я использовал следующий ситанкс

drop database filmo; 

и получил следующую ошибку:

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

любые идеи..

Ответ 1

Это означает, что в этом каталоге есть файлы, не относящиеся к MySQL. Другая проблема, хотя я сомневаюсь, - это недостаточные разрешения. Вы можете удалить этот каталог из файловой системы.

Ответ 2

Получена такая же ошибка. Это исправлено для меня в Ubuntu 10.04:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

Где XXXXX - это имя базы данных оскорбителя.

Ответ 3

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

где db_production - это имя базы данных

Не забудьте использовать "sudo".

Ответ 4

Я изменил права на папку mysql (windows server c:\xampp\mysql) и сейчас работает, я создал и удалил базы данных без каких-либо ошибок.

Ответ 5

Это то, что я делаю в Mac OS X Mavericks:

  • Остановить службу MySQL
  • Удалить каталог /usr/local/mysql/data

Ответ 6

1) rm -rf /var/lib/mysql/data/***  сохранить данные dir, rm - содержимое данных /

2) используйте

 mysql -uxxx -pyyy
   $ drop database data;

затем , было бы хорошо воссоздать базу данных снова. надеюсь, это поможет, Внимание, прямой удалить данные dir бесполезно, независимо от того, что вы перезапускаете mysqld или нет.

Ответ 7

У вас есть разрешение на запись в этом каталоге (и родительском)? вам может потребоваться рекурсивно сделать каталог доступным для записи (вкладка безопасности в Windows или chmod в nix) и удалить любые не-db файлы, такие как "Thumbs.db"

Ответ 8

У меня была эта проблема, и, похоже, это касается ваших прав пользователя mysql. попробуйте сделать это от пользователя root, если он действительно работает, используйте эту команду с правами root для прав доступа к вашему пользователю:

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

Ответ 9

Вот способ моделирования вашей ошибки

1.создайте каталог в каталоге данных MySQL

mkdir /data/mysql/data/filmo

2. выберите последний элемент

[[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. создать файл дампа в нем

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

4.MySQL будет считать, что filmo - это база данных

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

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

5. Когда я отбрасываю эту "базу данных", вот ваша ошибка

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

Ответ 10

Эта ошибка обычно возникает, когда у вас неправильная TABLESPACE в файле ibdata1 (что для двигателя innodb) innodb engine сохраняет некоторые настройки внутри файла ibdata1

Если вы недавно скопировали/перенесили файлы на другой сервер или попытались восстановить, вам следует переместить файл ibdata1, а затем удалить db. Я предполагаю, что у вас проблема, поскольку таблица не существует и теперь удаляет db? если да, то остановите службу mysql, затем удалите файлы, а затем снова создайте db, что вам поможет. Дальше здесь это может помочь вам [Ошибка удаления базы данных (не может rmdir '.test \', errno: 17)

Ответ 11

Не уверен, откуда я получил этот ответ (извинения), но, хотя он аналогичен приведенному выше, он имеет дополнительную информацию о том, как найти каталог данных mysql:

mysql -e "select @@datadir"

Это, я полагаю, является общим и возвращает путь к mysql/data. Если вы перейдете в этот каталог (команда unix/linux/macOS):

cd path_to_mysql/data​​p >

вы найдете базу данных, которую хотите удалить, которая по nix может быть выполнена:

sudo rm -rf DB_NAME

В MacOS X (10.9.5) мне не нужно было останавливать MySQL, но это может различаться на других платформах.

Ответ 12

drop database <database_name>;