2013-05-10 46 views
0

我有一个数据库需要从latin_1转换为utf8。这种转换是没有问题,我的升级环境,一切工作正常,当我添加到my.cnf文件行(如this SO question建议):单个MySQL服务器可以支持多种编码吗?

[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。我可以使用不同的编码共享相同的服务器吗?我是否需要更改默认配置来执行此操作?或者这是在惹麻烦?

+0

应该没问题。我们有一个拥有许多数据库的开发者机器,一些UTF-8和一些拉丁文1。 – Atle 2013-05-10 17:01:20

回答

3

实际数据的编码是基于每列的,即每个表中的每一列都可以有不同的编码。数据被动态地转码为来自连接编码每个客户端具有;每个客户端可以有不同的连接编码,每个客户端可以即时更改连接编码。你不需要改变配置文件中的任何东西;实际上你不应该这样做,因为这可能会影响依赖于默认的客户的行为。

只需为您的客户设置自己的编码设置,您就很好。阅读this了解更多详情。

相关问题