mysql - AWS RDS 参数组不改变 MySQL 编码

标签 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

最佳答案

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

如果您列出GLOBAL VARIABLES,这应该反射(reflect)您在参数组中看到的内容:(假设您已经按照 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 

关于mysql - AWS RDS 参数组不改变 MySQL 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522939/

相关文章:

mysql - 在 RDS 中访问 MySQL 或 MS SQL 时,AWS Lambda node.js ETIMEDOUT

oracle - 如何在 RDS Oracle 数据库上将字符集 (NLS_CHARACTERSET) 和国家字符集 (NLS_NCHAR_CHARACTERSET) 更改为 UTF8?

php - MYSQL SELECT JOIN 带条件

PHP登录问题;未知

mysql - 使用 ClearDB 插件将使用 MySQL 的 Rails 应用程序部署到 Heroku

amazon-web-services - 删除具有拒绝所有策略和 VPC 条件的 S3 存储桶

amazon-web-services - AWS : Invalid storage size for engine name postgres

mysql - 获取具有 3 亿行的概率密度图和 k-means 聚类

amazon-web-services - 无服务器|如何将 Lambda 授权者设置为 None(公共(public) API)

amazon-web-services - 强制在浏览器中查看S3 PDF而不是下载