我在我的 MySQL 中发现我有不同的全局和数据库“character_set_client”变量。 show variables
显示
character_set_client | utf8
而
show global variables
显示
character_set_client | latin1
我相信第一个是数据库设置。我怎样才能改变它?当我做
set character_set_client='latin1'
它仅针对 session 进行更改。当我断开连接并再次连接时,它被设置回“utf8”。如何更改它以使其保持在“latin1”?
请您参考如下方法:
这个想法是在服务器端强制字符集并告诉它跳过关于字符集的协商。
见 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