Mysql – 使用#名称下载数据库

我如何删除名称中的数据库# 像那样:#mysql50#mysql.backup

我不知道谁有可能创造它,但它发生了。 当我尝试使用DROP DATABASE名称时,出现错误:

错误1102(42000):不正确的数据库名称

感谢您的帮助。

数据目录中可能有隐藏的文件夹。 请做一个ls -larth和删除mysql.backup目录。

默认情况下,mysql数据目录中的任何文件夹将被读取为数据库,并将显示在“show databases”中。

至less在有疑问的情况下,您应该始终使用反引号引用数据库名称。

DROP DATABASE `#mysql50#mysql.backup` 

如果数据库的存储引擎是MYISAM,则只需停止数据库服务器,然后删除数据目录中以数据库命名的目录。 (默认var/lib/mysql

MySQL数据目录中的任何目录都被MySQL视为数据库。 最有可能你有/ ext {4,3,2}文件系统和默认的'lost + found'目录(lost + found目录被文件系统检查工具(fsck)使用)的/ var / lib / mysql的专用挂载点。 您可以说MySQL将my.cnf中的ignore_db_dir选项作为目录而不是数据库:

 ignore_db_dir=lost+found 

在你的特定(#mysql50#mysql.backup)的情况下,将是:

 ignore_db_dir=mysql.backup 

你可以尝试的是通过改变它的数据目录的名字来改变数据库的名称,然后删除数据库,或者直接删除目录,如果你想要删除数据库。

当这个表被创build时,是不是可能是在不同的SQL模式下? 像这样的数据库名称可能在不同的SQL服务器上。 你可以尝试的是将MySQL切换到不同的SQL模式,如下所述,然后尝试删除表。

如果这不起作用,那么我也build议删除数据库文件。