【问题标题】:Change server variable character_set_server更改服务器变量 character_set_server
【发布时间】:2011-08-09 10:34:37
【问题描述】:

我想把mysql服务器变量character_set_server改成utf8。我对此进行了谷歌搜索,但似乎找不到我正在寻找的信息或说明不匹配。 看来我需要编辑一个名为 my.cnf 的文件,但我的系统上不存在该文件。版本是5.1.36。

【问题讨论】:

  • 这里只是给未来的访问者一个提示:OP 接受了一个完全错误的答案(请参阅上面的 cmets 了解原因)。请改为查看最高投票的答案。 (这不是我的答案,我个人与这个问题无关,这只是一个公益广告)。

标签: mysql character-encoding


【解决方案1】:

这是谷歌的第一个结果

http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_character-set-server

有两种方法可以设置此配置

  • 通过配置文件(字符集服务器),需要重启
  • 或通过set global/sessioncharacter_set_server,这不需要重新启动,但是如果您的数据库重新启动,它将消失,那么您需要重新设置它

【讨论】:

  • 感谢您的回答,但我不明白为什么投反对票,对于没有经验的人来说,该文件并不完全清楚,所以我想我会在这里问这个问题。
  • 但首先来自谷歌结果:(你应该在这里询问 serverfault
  • 当然你是对的,但重点是:“这个选项是动态的,但只有服务器应该设置这个信息。你不应该手动设置这个变量的值”。 dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
  • @FedericoRazzoli - 我提供了两种方法并解释了使用手动配置的后果
【解决方案2】:

my.ini 和 my.cnf 文件的位置:

http://dev.mysql.com/doc/refman/5.0/en/option-files.html

关于是否应该使用 my.ini 或 my.cnf 文件的问题,上述文档指出

Windows 系统同时使用 my.ini 和 my.cnf,

Linux、Unix、Mac OS X 系统使用 my.cnf。

【讨论】:

  • “windows 同时使用”是什么意思?他们有一个优先级,还是从其中一个中获取一个随机值?
  • 很久以前。不记得了。查看链接资源 - 参见表 4.1 - 它显示为 %WINDIR%\my.ini, %WINDIR%\my.cnf C:\my.ini, C:\my.cnf 。我将其解释为其中之一。
  • 如果两者都是,第一个(cnf)中的值为“A”,第二个(ini)中的值为“B”,我们应该使用什么?
【解决方案3】:

运行此查询:

set global character_set_server = utf8;

然后重启mysql。 您可以通过简单的方式查看所有变量的列表

show variables;

【讨论】:

  • 这是不正确的。如果您运行查询并重新启动 MySQL,您将拥有与发出查询之前完全相同的 character_set_server,它可能是也可能不是 utf8。重启mysql会从磁盘重新加载配置。
  • 您似乎不了解 MySQL 的基础知识。因此,请至少在发布之前测试您的答案。
  • 致 OP @grai,请将此答案作为选定答案删除,因为它是错误的。
猜你喜欢
  • 2013-08-05
  • 2016-06-03
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 2013-09-30
  • 2015-11-08
  • 2013-05-10
相关资源
最近更新 更多