我正在尝试使用“ lower_case_table_names = 1”创建一个新的MySQL v8.0.11 RDS数据库实例。
数据库的创建被阻塞,并且在日志中我看到以下错误:
“服务器('1')和数据字典('0')的lower_case_table_names设置不同。”
有人经历过这个吗?
请帮助。
答案 0 :(得分:2)
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html
lower_case_table_names 由于 Amazon RDS 使用区分大小写的文件系统,因此不支持将 lower_case_table_names 服务器参数的值设置为 2(“名称存储为给定但以小写形式进行比较”)。以下是 Amazon RDS for MySQL 数据库实例支持的值:
0(“名称存储为给定且比较区分大小写”)适用于所有 Amazon RDS for MySQL 版本。
Amazon RDS for MySQL 5.5、5.6、5.7 和 8.0.19 及更高的 8.0 版本支持 1(“以小写形式存储的名称和比较不区分大小写”)。
lower_case_table_names 参数应在创建数据库实例之前设置为自定义数据库参数组的一部分。您应该避免更改现有数据库实例的lower_case_table_names 参数,因为这样做可能会导致与时间点恢复备份和只读副本数据库实例不一致。
只读副本应始终使用与源数据库实例相同的lower_case_table_names 参数值。
答案 1 :(得分:1)
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names
禁止使用与初始化服务器时使用的设置不同的lower_case_table_names设置启动服务器。该限制是必要的,因为各种数据字典表字段使用的归类基于初始化服务器时定义的设置,并且使用不同的设置重新启动服务器会导致标识符的排序和比较方式不一致。
这是AWS有关此选项支持的问题。这取决于它们如何初始化RDS实例。我猜想他们会克隆一个预先初始化的InnoDB表空间的映像,而不是初始化一个新的表空间。
答案 2 :(得分:0)
Amazon RDS支持参数组,用于定义数据库引擎的设置。
MySQL 8的参数组包括lower_case_table_names
的设置:
您应该配置此参数组,然后使用该参数组启动RDS群集。
请参阅:Working with DB Parameter Groups - Amazon Relational Database Service