AWS RDS参数组不更改MySQL编码

ill*_*ors 1 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/
Run Code Online (Sandbox Code Playgroud)

同样,我在DB上创建的新列是latin1编码而不是utf8mb4编码的.我可以通过mysql命令行手动更改编码值,但这没有帮助,因为latin1当我推送到生产时,值也会重置为.

Dea*_*ean 5

我认为这个问题是VARIABLESGLOBAL VARIABLES之间的区别.

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

SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Run Code Online (Sandbox Code Playgroud)

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

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
Run Code Online (Sandbox Code Playgroud)

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

mysql -h YOUR_RDS.us-east-1.rds.amazonaws.com -P 3306 --default-character-set=utf8 -u YOUR_USERNAME -p 
Run Code Online (Sandbox Code Playgroud)