web-dev-qa-db-ja.com

データベースを削除する方法

次の構文を使用しました

drop database filmo; 

次のエラーが発生しました:

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

何か案は..

20
devang

これは、MySQLに関連しないファイルがそのディレクトリにあることを意味します。もう1つの問題は、私には疑いはありますが、権限の不足です。ファイルシステムからそのディレクトリを削除できます。

23
tanerkay

同じエラーが発生しました。これにより、Ubuntu 10.04で修正されました。

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

ここで、XXXXXは問題のあるデータベース名です。

12
Alex R

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

ここで、db_productionはデータベースの名前です

「sudo」を使用することを忘れないでください。

7
Jones Agyemang

Mysqlフォルダー(Windowsサーバーc:\xampp\mysql)、現在は機能しています。エラーなしでデータベースを作成して削除しました。

1
Anghel Florin

1)rm -rf /var/lib/mysql/data/***データdirを保持、データの内容をrm /

2)使用

 mysql -uxxx -pyyy
   $ drop database data;

次にデータデータベースを再作成しても問題ありません。うまくいけば、mysqldを再起動するかどうかにかかわらず、注意、直接削除データディレクトリは役に立たないに役立つでしょう。

1
gandy

これは私がMac OS X Mavericksで行うことです。

  1. MySQLサービスを停止します
  2. /usr/local/mysql/dataのディレクトリを削除します
1
Higo Matos

私はこの問題を抱えていましたが、それはあなたのmysqlユーザー権限に関するもののようです。 rootユーザーで実行してみてください。機能した場合は、次のコマンドをrootとして使用して、ユーザーへのアクセス許可をグランドドロップします。

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

ここにあなたのエラーをシミュレートする方法があります

1. MySQLデータディレクトリにディレクトリを作成する

mkdir /data/mysql/data/filmo

2.最後の項目を確認

[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.ダンプファイルを作成する

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

4.MySQLはfilmoがデータベースであると信じます

[root@linux]# mysql -uroot -p123456 -e"show databases;"

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

5.この「データベース」をドロップすると、ここにあなたのエラーがあります

[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

(謝罪)からこの回答を得た場所はわかりませんが、上記と同様ですが、mysqlデータディレクトリを見つける方法の追加情報があります。

mysql -e "select @@ datadir"

これは一般的なもので、mysql/dataへのパスを返します。そのディレクトリに移動した場合(unix/linux/macOSコマンド):

cd path_to _ mysql/data

削除するデータベースが見つかります。これはnixでは次のようにして実行できます。

Sudo rm -rf DB_NAME

MacOS X(10.9.5)ではnotでMySQLを停止する必要がありましたが、他のプラットフォームでは異なる場合があります。

0
David

そのディレクトリ(および親)への書き込み権限はありますか?ディレクトリを再帰的に書き込み可能にして(Windowsのセキュリティタブまたはnixのchmod)、「Thumbs.db」などの非dbファイルを削除する必要がある場合があります。

0
jspcal

このエラーは通常、ibdata1ファイル(innodbエンジン用)に間違ったTABLESPACEがある場合に発生します。innodbエンジンは、ibdata1ファイル内にいくつかの設定を保存します

最近ファイルを他のサーバーにコピーまたは移動したか、復元しようとした場合は、ibdata1ファイルも移動する必要があります。その後、dbを削除できます。テーブルが存在せず、現在データベースを削除しているような問題があると思いますか?はいの場合は、mysqlサービスを停止してからファイルを削除してから、dbを再度作成してください。さらにここでこれはあなたを助けるかもしれません[ Error Dropping Database(Ca n't rmdir '.test \'、errno:17)

0
Raj Talreja