单个MySQL服务器可以支持多种编码吗?

时间:2013-05-10 16:56:10

标签: mysql character-encoding

我有一个数据库需要从latin_1转换为utf8。这种转换没有问题,在我的暂存环境中,当我向my.cnf添加行时,一切正常(如this SO question中所示):

[client]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

运行适当的ALTER语句:

ALTER TABLE {row} CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

不幸的是,这个数据库并不仅仅位于MySQL服务器上。它与仍使用latin_1编码的几个数据库共享服务器,这些数据库实际上不需要utf8。我可以使用不同的编码共享同一台服务器,是否需要更改默认配置才能执行此操作?或者这是在寻找麻烦?

1 个答案:

答案 0 :(得分:3)

实际数据的编码基于每列,即每个表中的每个列可以具有不同的编码。数据在运行中转发到/来自每个客户端的连接编码;每个客户端可以具有不同的连接编码,并且每个客户端可以动态地更改连接编码。您无需更改配置文件中的任何内容;事实上你不应该,因为这可能会影响依赖默认的客户的行为。

只需为您的客户设置自己的编码设置即可。阅读this了解更多详情。