Mysql查询发现当前默认的数据库排序规则(通过命令行客户端)

q9rjltbz  于 12个月前  发布在  Mysql
关注(0)|答案(3)|浏览(86)

我不知道为了查看mysql数据库的当前排序规则集,应该运行哪个查询。
我知道我可以通过运行这样的查询来更改它:

ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

但我不想在不知道当前值的情况下计算。
我认为这实际上是可能的,因为在phpmyadmin中,你可以在数据库的操作选项卡中看到当前值,但我需要通过命令行客户端来完成,在谷歌上搜索了一下之后,我没有找到答案。
也许我会打开phpmyadmin代码来发现它。在做之前,有没有人知道哪个是正确的查询?
先谢谢你了。

umuewwlo

umuewwlo1#

我自己想出来的,看phpmyadmin代码。
根据mysql版本,要运行的查询如下:

SELECT DEFAULT_COLLATION_NAME FROM data_dictionary.SCHEMAS WHERE SCHEMA_NAME = 'nameOfMyDb' LIMIT 1;

SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'nameOfMyDb' LIMIT 1;
alen0pnh

alen0pnh2#

show variables like "%collat%"
yfjy0ee7

yfjy0ee73#

备选方案1

SELECT @@character_set_database, @@collation_database;

*****see MySQL: what does @@ mean?

备选方案2

SHOW VARIABLES LIKE 'character_set_database';
SHOW VARIABLES LIKE 'collation_database';

备选方案3

SELECT 
   default_character_set_name, default_collation_name
FROM information_schema.schemata 
WHERE schema_name = '<database_name>';

相关问题