Ошибка удаления базы данных (невозможно rmdir '.test \', номер ошибки: 17) - PullRequest
110 голосов
/ 03 января 2011

По сути, меня учили, как создавать пароль root с помощью команды «mysqladmin -u root -p password», это делалось через редактор команд Windows. Теперь следующим процессом было отображение баз данных по умолчанию (info. Schema, mysql и test), что было достигнуто с помощью «SHOW DATABASES;»

Но согласно книге нам пришлось удалить избыточный тестовый файл, и всплыла следующая ошибка:

Ошибка удаления базы данных (невозможно rmdir '.test \', номер ошибки: 17)

Команда для использования была DROP DATABASE test;

Я использую MYSQL и PHPMYADMIN. Любая помощь о том, как сбросить файл без ошибок?

Ответы [ 14 ]

149 голосов
/ 03 января 2011

База данных представлена ​​каталогом под каталогом данных (обычно /var/lib/mysql), и каталог предназначен для хранения табличных данных.

Оператор DROP DATABASE удалит все файлы таблиц, а затем удалит каталог, представляющий базу данных. Однако он не удалит не относящиеся к таблице файлы, в результате чего не удастся удалить каталог.

MySQL отображает сообщение об ошибке, когда не может удалить каталог

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

37 голосов
/ 15 апреля 2011

Я столкнулся с этой же проблемой при новой установке MySQL 5.5 на Mac.Я попытался сбросить тестовую схему и получил сообщение об ошибке 17.errno 17 - ошибка, возвращаемая некоторыми функциями posix os, указывающая, что файл существует там, где его не должно быть.В каталоге данных я обнаружил странный файл ".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

После того, как я выполнил рендеринг файла .empty, команда drop database прошла успешно.

Я не знаю, откуда взялся файл .empty;как уже отмечалось, это была новая установка mysql.Возможно, что-то пошло не так в процессе установки.

31 голосов
/ 16 марта 2013

Перейдите в каталог данных для установки MySQL и вручную запустите базы данных. Это может быть

/usr/local/var/mysql

Тогда

rm -R <Your DB name>

Чтобы проверить datadir для вашей установки,

vim the mysql.server file and find it there.
22 голосов

Для phpmyadmin , перейдите в xampp \ mysql \ data и просто удалите папку базы данных.Работал на меня !!

11 голосов
/ 15 ноября 2014

Если это XAMPP, выполните следующие действия:

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

Надеюсь, это поможет.

7 голосов
/ 28 апреля 2013

Я только что столкнулся с этой проблемой с WAMP и phpMyAdmin, который поставляется вместе с ним.Удалить базу данных и устранить ошибку.Я вошел в C:\wamp\bin\mysql\mysql5.5.24\data\ и удалил папку для рассматриваемой базы данных.

Затем обновил страницу на phpMyAdmin, и база данных исчезла.

2 голосов
/ 14 декабря 2017

Просто добавим к ответам: В Windows 10 файлы данных хранятся здесь ...

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

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

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

1 голос
/ 11 июня 2019

Пройдите через это и удалите соответствующие файлы кэша в выбранной базе данных, а затем после того, как вы сможете удалить свою базу данных

Сначала найдите каталог данных MySQL, содержащий выбранную вами базу данных

Linux

  • Откройте файл конфигурации MySQL: less /etc/my.cnf
  • Поиск по термину "датадир": / datadir

  • Если он существует, он выделит строку, которая гласит: datadir = [путь]

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

  • Если эта строка не существует, MySQL по умолчанию будет: /var/lib/mysql.

Windows 1. Откройте файл конфигурации MySQL в блокноте: my.ini

my.ini будет находиться в папке программы MySQL, которая будет находиться там, где он установлен. Если вы не установили MySQL, воспользуйтесь функцией поиска Windows для поиска my.ini. Вы также можете вручную найти его, перейдя в [диск]: \ Program Files \ MySQL \ MySQL Server 5.5.

  1. Выполните поиск в Блокноте, чтобы найти термин "datadir".

  2. Если он существует, он выделит строку, которая гласит: datadir = [путь]

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

  4. Если эта строка не существует, вы, вероятно, найдете ее в [диск]: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data.

ПРИМЕЧАНИЕ. Папка «ProgramData» может быть скрыта. Возможно, вам придется ввести явный путь в Windows Explore

0 голосов
/ 05 сентября 2017

Вам может потребоваться проверить две вещи.

1- Разрешение базы данных Foleder База данных, которую вы хотите удалить, должна иметь того же владельца, что и процесс mysql.

2- Каталог должен быть пустым Перейдите в каталог данных mysql и убедитесь, что каталог пуст

После этого подключите mysql cli и снова выполните команду drop database.

0 голосов
/ 09 августа 2016

Вы можете удалить данные в каталоге sql.

Для меня я использовал AMPPS на Windows 10. Я пошел в каталог установки AMPPs.для меня это было:

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

, потому что он установлен на моем дополнительном диске.

Затем обновите свой клиент SQL, и вы увидите, что он исчез.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...