2015-05-29 58 views
1

我在RDS上運行MySQL數據庫。我想將我的所有編碼更改爲utf8mb4。我在RDS上創建了一個參數組,其所有character_set_*參數爲utf8mb4,將其分配給我的RDS實例,然後重新啓動實例。然而,當我在我的數據庫運行SHOW VARIABLES LIKE '%char%',仍有latin1值,這是我不想:AWS RDS參數組不改變MySQL編碼

character_set_client  latin1 
character_set_connection latin1 
character_set_database  utf8mb4 
character_set_filesystem binary 
character_set_results  latin1 
character_set_server  utf8mb4 
character_set_system  utf8 
character_sets_dir   /rdsdbbin/mysql-5.6.22.R1/share/charsets/ 

同樣,我對DB創建新列latin1編碼,而不是utf8mb4編碼。我可以通過mysql命令行手動更改編碼值,但這沒有幫助,因爲在我推入生產時,值也會重置爲latin1

回答

1

更改參數組後 - 在控制檯中發出警告「Pending Reboot」。如果是,請嘗試重新啓動數據庫實例,並開始應用新的字符集。

更多信息 - http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html

enter image description here

+0

是的,我申請了參數組後,我等待着,直到我看到控制檯中'的待定reboot'。然後,我重新啓動了RDS實例。字符集未正確應用。 –

+0

請聯繫AWS支持或拍攝快照並重新恢復。 –

3

我覺得這個問題是變量全局變量之間的區別。

如果您列出全程變量這應該反映了您在參數組看到:(假設你已經重新啓動作爲納文建議)

SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; 

這是不是你所看到的在常規變量

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; 

這些有時可以用t覆蓋他在連接中提供了選項。例如,連接使用選項--default-字符集

mysql -h YOUR_RDS.us-east-1.rds.amazonaws.com -P 3306 --default-character-set=utf8 -u YOUR_USERNAME -p