如何删除名称中带有西里尔符号的数据库?

How can drop database with a cyrillic symbol in the name?

我在 /var/lib/mysql/:

中有两个数据库
test_@x0m
test_cm

数据库 test_@x0m 名称中包含西里尔符号。

在 mysql 中,此数据库如下所示:

test_?m
test_cm

我想删除带有西里尔符号的数据库。我使用命令:

drop database `test_@x0m`;
drop database `test_?m`;
drop database `test_\?m`;

但得到结果:

Unknown database

如何删除带有西里尔符号的数据库。

谢谢。

您似乎需要在连接到 mysql 时设置正确的编码。 首先检查默认编码变量:

mysql> show variables like '%character%';
+--------------------------+-------------------------------------+
| Variable_name            | Value                               |
+--------------------------+-------------------------------------+
| character_set_client     | latin1                              |
| character_set_connection | latin1                              |
| character_set_database   | latin1                              |
| character_set_filesystem | binary                              |
| character_set_results    | latin1                              |
| character_set_server     | latin1                              |
| character_set_system     | utf8                                |
| character_sets_dir       | /usr/share/percona-server/charsets/ |
+--------------------------+-------------------------------------+

如果您看到类似的内容,则需要将会话设置切换为 UTF8

mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)

现在您可以删除带有任何 utf 字符的数据库,只需将其输入 mysql 控制台