AWS RDS参数组不更改MySQL编码

时间:2015-05-29 06:49:18

标签: mysql amazon-web-services amazon-rds

我在RDS上运行MySQL数据库。我想将我的所有编码更改为utf8mb4。我在RDS上创建了一个参数组,其中所有character_set_*参数都为utf8mb4,将其分配给我的RDS实例,然后重新启动实例。但是,当我在我的数据库上运行SHOW VARIABLES LIKE '%char%'时,仍然存在latin1的值,这是我不想要的:

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/

同样,我在数据库上创建的新列是latin1编码的,而不是utf8mb4编码的。我可以通过mysql命令行手动更改编码值,但这没有用,因为当我推向生产时,这些值也会重置为latin1

2 个答案:

答案 0 :(得分:5)

我认为问题在于 VARIABLES GLOBAL VARIABLES 之间的区别。

如果列出 GLOBAL VARIABLES ,这应该反映您在参数组中看到的内容:(假设您已按照Naveen的建议重新启动)

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

这与您在常规 VARIABLES 中看到的内容相反:

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

这些有时可以被连接中提供的选项覆盖。例如,使用 - default-character-set 选项进行连接:

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

答案 1 :(得分:1)

更改参数组后 - 在控制台中是否显示“Pending Reboot”警告。如果是,请尝试重新启动数据库实例,并开始应用新的字符集。

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

enter image description here