2013-05-10 76 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瞭解更多詳情。

相關問題