在MySQL中更改数据库变量“character_set_client”

时间:2013-12-13 15:35:31

标签: mysql

我在MySQL中发现我有不同的全局和数据库“character_set_client”变量。 show variables显示

character_set_client | utf8

show global variables显示

character_set_client | latin1

我相信第一个是数据库设置。我该怎么改变它?当我做的时候

set character_set_client='latin1'

仅针对会话进行更改。当我断开并再次连接时,它将重新设置为'utf8'。如何更改它以使其保持在'latin1'?

2 个答案:

答案 0 :(得分:1)

这个想法是强制服务器端的字符集并告诉它跳过有关字符集的协商。 见MySQL manual。 对于客户端和服务器之间的正确操作,三个参数至关重要。它们设置在.cnf文件的[mysqld]部分中:

collation-server=utf8_unicode_ci
character-set-server=utf8

旁注,在这个时代,应该始终使用UTF8,这需要设置以下几行:

{{1}}

答案 1 :(得分:-2)

如果要更改数据库的默认值(因此也要更改数据库的所有用户)并且您是数据库的管理员,则可以将其编译为mysqld版本:

configure --with-charset=latin1

或在服务器启动/重新启动时将其包含在命令行中:

mysqld --character-set-server=latin1

请参阅this reference

如果您不想更改服务器的默认值,但在连接时确实要更改 默认值,则可以使用客户端命令行参数--default-character-set,如上所述here

它们也可能是在.my.cnf文件中应用该设置的一种方法,但我不知道它。