web-dev-qa-db-ja.com

Mysql-名前に#が含まれるデータベースを削除します

名前に#が含まれるデータベースを削除するにはどうすればよいですか?そのように:#mysql50#mysql.backup

誰が作成できるのかわかりませんが、それは起こりました。 DROP DATABASE名を試してみると、次のエラーが発生します。

エラー1102(42000):データベース名が正しくありません

助けてくれてありがとう。

3

データディレクトリに隠しフォルダがある可能性があります。 ls -larthを実行し、mysql.backupディレクトリを削除してください。

デフォルトでは、mysqlデータディレクトリ内のすべてのフォルダがデータベースとして読み取られ、「showdatabases」に表示されます。

5
Chandra Sekhar

少なくとも疑わしい場合は、常にバッククォートを使用してデータベース名をエスケープする必要があります。

DROP DATABASE `#mysql50#mysql.backup`
4
Cheatah

データベースのストレージエンジンがMYISAMの場合は、データベースサーバーを停止し、データベースにちなんで名付けられたディレクトリをデータディレクトリから削除します。 (デフォルト var/lib/mysql

1
golja

MySQL datadir内のすべてのディレクトリは、MySQLによってデータベースと見なされます。ほとんどの場合、ext {4,3,2}ファイルシステムとデフォルトの 'lost + found'ディレクトリが存在する/ var/lib/mysql専用のマウントポイントがあります(lost + foundディレクトリはファイルシステムチェックツール(fsck)によって使用されます)。 my.cnfの ignore_db_dir オプションを使用して、MySQLがこのディレクトリをデータベースではなくディレクトリとして扱うように言うことができます。

ignore_db_dir=lost+found

特定の(#mysql50#mysql.backup)の場合、次のようになります。

ignore_db_dir=mysql.backup
1
lik

データディレクトリの名前を変更してデータベースの名前を変更してからデータベースを削除するか、必要に応じてディレクトリを直接削除すると、データベースも削除されます。

0
Adia

CentOS 7の場合、ディレクトリを/var/lib/mysqlに変更します

cd /var/lib/mysql

Sudo rm -R .mysql.backup
0
Ben2014

私はこれと同じ問題を抱えていました。次の問題が見つかりました。/var/lib/mysql/フォルダに次のような項目がありました。

._cache_block.frm ._cache_block.ibd ._ctools_css_cache.frm ._ctools_css_cache.ibd ._field_revision_field_slide_show_image.frm ._field_revision_field_slide_show_image.ibd ._field_revision_field_tags.frm ._field_revision_field_tags.ibd ._taxonomy_vocabulary.frm ._taxonomy_vocabulary.ibd

私はそれらを削除しました。その後、MySQLコマンド(この場合はmysqldump)を正しく実行することができました。

0
ElusiveMind

このテーブルが作成されたとき、別のSQLモードであった可能性がありますか?このようなデータベース名は、さまざまなSQLサーバーで使用できます。ここで説明されているように ここ にMySQLを別のSQLモードに切り替えてから、テーブルを削除してみてください。

これが機能しない場合は、データベースファイルを削除することもお勧めします。

0