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

amo*_*fis 8 mysql

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

character_set_client | utf8
Run Code Online (Sandbox Code Playgroud)

同时show global variables显示

character_set_client | latin1
Run Code Online (Sandbox Code Playgroud)

我相信第一个是数据库设置。我怎样才能改变它?当我做

set character_set_client='latin1'
Run Code Online (Sandbox Code Playgroud)

它仅针对会话进行更改。当我断开连接并再次连接时,它会设置回“utf8”。我怎样才能改变它,使其保持在“latin1”?

dg9*_*g99 -2

如果您想更改数据库的默认值(从而更改数据库的所有用户)并且您是数据库的管理员,则可以将其编译到构建中mysqld

configure --with-charset=latin1
Run Code Online (Sandbox Code Playgroud)

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

mysqld --character-set-server=latin1
Run Code Online (Sandbox Code Playgroud)

请参阅此参考资料

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

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