使っていますMySQL v5.1存在するUbuntuマシン。
my_dbというデータベースがあり、それを削除したいので、次のコマンドを実行します。
mysql> drop database my_db;
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_db/', errno: 17)
上記のようにエラーが発生します...なぜデータベースを削除できないのですか?
ポリスチレンすべてのデータベース関連ファイルが次の場所にあることがわかります。/var/lib/mysql/my_db/
答え1
クイックテストでは、errno = 17
「ファイルが存在する」と表示されます(ただ観察するだけで、公開する前にこれを把握することは期待していません)。
私が見つけたこのスレッド/var/lib/mysql/my_db/
mysqlサイトでは、これはmysqlが生成しなかった(または生成しなかったと思う)ファイルがあることを示します。 (必要なsudo
)ファイルを一覧表示し、その中に何があるかを確認してください。そこにあるすべてのコンテンツを一時ディレクトリに移動し(または本当に必要ないと確信している場合は削除して)、もう一度やり直してください。
答え2
所有者と権限を確認した結果、/var/lib/mysql/my_db
mysqlデーモンを実行しているユーザーアカウントにフォルダを削除するための適切な権限がないと思いました。
ルートでシャットダウンmysqld
して起動し、テストするデータベースを削除してみることができます。
答え3
私が知っている限り、次のことを確認する必要があります。
- データベースに関連付けられていない不要なファイルがあるかどうかを確認してください。データベースファイルのみ
DROP database
を削除した後、ディレクトリを削除し、データベースファイルに関連付けられていない他のファイルがある可能性があるため、削除しないため、ディレクトリを削除できません。 - それでも機能しない場合は、drop Databaseを試してください
PHPMYADMIN
。ほとんどの場合動作します。
以下を確認してください: