我如何删除名称中的数据库# 像那样:#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议删除数据库文件。