【问题标题】:AWS RDS Parameter Group not changing MySQL encodingAWS RDS 参数组不更改 MySQL 编码
【发布时间】:2015-05-29 06:49:18
【问题描述】:

我在 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/

同样,我在 DB 上创建的新列是 latin1 编码的,而不是 utf8mb4 编码的。我可以通过mysql 命令行手动更改编码值,但这无济于事,因为当我推送到生产环境时,这些值也会重置为latin1

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我应用参数组后,等到在控制台看到pending-reboot。然后,我重新启动了 RDS 实例。字符集未正确应用。
    • 请联系 AWS 支持或拍摄快照并再次恢复。
    • 我也有同样的问题,还在寻找解决方案!
    • 我也有同样的问题
    【解决方案2】:

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

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

    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%';
    

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

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

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2020-02-18
      • 2020-09-21
      • 2021-02-18
      • 1970-01-01
      相关资源
      最近更新 更多