【问题标题】:How do I find out the default server character set in mysql?如何找出mysql中的默认服务器字符集?
【发布时间】:2012-09-01 21:15:43
【问题描述】:

在 FreeBSD 8.2 上使用 MySQL。如何找出默认的服务器字符集?是否有一些我可以运行的命令或我可以检查的文件?

更新

其实我想知道如何找到默认服务器字符集当前服务器字符集。

【问题讨论】:

  • 您真的是指“服务器字符集”吗?你想做什么?见What is the XY problem?
  • @eggyal: 1. 我想知道怎么做。 2. 如果我正在创建临时数据库(我可能希望在 utf8 中使用),我是否需要在每次创建数据库时指定一个字符集(和排序规则)?

标签: mysql character-encoding freebsd


【解决方案1】:

Server Character Set and Collation 中所述:

最初,服务器字符集和排序规则取决于您在启动 mysqld 时使用的选项。您可以使用--character-set-server 作为字符集。除此之外,您可以添加--collation-server 进行排序。如果不指定字符集,则等同于说--character-set-server=latin1

因此,默认服务器字符集是 Windows-1252,MySQL 将其称为 latin1,除非您的 MySQL 副本已使用其他默认值编译。

手册接着说:

可以根据character_set_servercollation_server 系统变量的值确定当前服务器字符集和排序规则。这些变量可以在运行时更改。

因此,要发现当前使用的服务器字符集:

SHOW VARIABLES LIKE 'character_set_server'

【讨论】:

  • 谢谢,检查 'character_set_server' 我看到它设置为 'latin1'。我会猜到它会错误地是'utf8'。现在我需要看看如何更改 FreeBSD 下的选项文件。
  • @User:见上面我修改后的答案。
  • 等等!不要删除答案的显示变量部分,这很有用,实际上我相信我的问题的直接答案。
  • @User:实际上,我觉得它根本没有回答您关于 default 服务器字符集的问题,如果显式更改,该变量可能会有所不同。默认始终为latin1(除非另外编译)。
  • @axelrotter:这是一个根本性的误解。 mysqld 是机器执行以运行 MySQL 服务器的二进制文件。如果您不是系统管理员,则无法调整这些选项。
【解决方案2】:

根据documentation。这就是你需要的:

SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';

甚至更好:

SHOW VARIABLES LIKE 'c%';

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 2012-02-12
    • 1970-01-01
    • 2012-01-30
    • 2011-09-17
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多