0

如果我以 root 身份登录到我的 linux 机器,然后在命令行上连接到 mysql,在交互式提示符下键入“\s”会告诉我客户端字符集和连接字符集是 utf8。如果我退出 mysql,“su - bob”,连接到 mysql(作为同一个 mysql 用户),然后在交互式提示符下键入“\s”告诉我 Client 字符集和 Connection 字符集是 latin1。

我从 bob 的环境中查找了可能相关的 root 环境的差异,当以 bob 身份登录时,我将它们设置为与 root 用户相同的值并再次连接到 mysql - 但我仍然看到 latin1。

有人可以解释导致差异的因素吗?

非常感谢,保罗

4

1 回答 1

0

mysql 客户端使用 LANG 或 LC_ALL 本地环境变量来设置客户端和连接字符集。如果没有定义这些变量,则使用默认字符集,我认为是 latin1。因此,如果 root 和 bob 用户对这些 env 变量具有不同的值,那么当您从各自的 OS 用户连接时,连接和客户端字符集将不同。

于 2012-09-07T10:24:08.607 回答