如何删除名称中包含元字符的数据库

如何删除名称中包含元字符的数据库

如何删除名称中包含元字符的数据库。数据库名称是#mysql50#lost+found.

我以 root 用户身份连接 mysql。我尝试像在 shell 命令中一样添加反斜杠:

MariaDB [(none)]> DROP DATABASE '\#mysql50\#lost\+found' ;
ERROR 1064 (42000): You have an error in your SQL syntax;

这不起作用

答案1

使用反引号作为对象名称;不使用反斜杠来转义单个字符:

mysql> drop database `#really-bad+name`;
Query OK, 0 rows affected (0.00 sec)

答案2

为了具体问题在这个问题中,数据库#mysql50#lost+found是安装在(可能)的文件系统上的一个人工制品/var/lib/mysql,该文件系统有一个lost+found 为使用时恢复而保留的特殊目录fsck

因此,应该通过告诉 MariaDB 忽略该目录来保留它。在/etc/my.cnf或其他类似的地方,添加:

ignore-db-dir=lost+found

并重新启动数据库服务器。

参考文献:MySQL/玛丽亚数据库

相关内容