2013-12-13 15 views
0

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

character_set_client | utf8 

show global variables显示

character_set_client | latin1 

我认为第一个是数据库的设置。我该如何改变它?当我做

set character_set_client='latin1' 

它只是改变会话。当我断开连接并重新连接时,它将重新设置为'utf8'。我怎样才能改变它,使它保持在'latin1'?

回答

-1

如果要更改数据库的默认(因此数据库的所有用户),你的数据库管理员,你可以把它编译成的mysqld编译:

configure --with-charset=latin1 

或包括在命令行上时,您的服务器启动/重新启动:

mysqld --character-set-server=latin1 

this reference

如果你不想改变服务器的默认设置,但是你想改变连接时默认情况下,那么你可以使用客户端的命令行参数--default-character-set描述here

它们也可能是将您的设置应用到.my.cnf文件中的一种方式,但我不知道它是非正式的。

0

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

[mysqld] 
#...  
#UTF8 stuff 
skip-character-set-client-handshake 
collation-server=latin1_general_ci 
character-set-server=latin1 

方面说明,在当今这个时代,应该采用UTF8,这需要设置以下行:

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