我们在Amazon RDS中有一个数据库实例,只有一个数据库。 (默认情况下,其lower_case_table_names = 0)。
现在我在同一个实例中创建了另一个数据库。 对于新站点,由于区分大小写的表名,其给定表未找到错误。
所以我在RDS中更改了该实例的lower_case_table_names = 1(因为不允许2)。 新站点开始工作但旧站点未找到错误表。
任何解决方案?我想设置lower_case_table_names = 1,因此新DB不会出现问题。
提前致谢!
答案 0 :(得分:4)
我遇到了同样的问题,默认情况下,当您使用AWS RDS创建新的MySQL实例时,它将使用default-parameter-group,问题是您无法更改此默认参数组中的任何参数。要更改参数值,您必须创建一个新参数组。在这里你是如何做到的:
答案 1 :(得分:2)
通过设置lower_case_table_names=1
进行配置后,尝试导出数据库并再次导入。
答案 2 :(得分:0)
如果设置lower_case_table_names=1
参数,则DB将从该点开始将所有新创建的表名转换为小写。还将在查找之前将所有数据库查询中的表名转换为小写。
但是,如果在启用参数之前数据库中已经有一组表,则它们不会更改。由于查询已转换为小写,因此您的应用程序将告诉您“未找到表”,因为实际表是大写的,而查找则是小写的。
我可以按照以下步骤解决此问题。
这将在导入时将所有新表名转换为小写。由于查找也以小写形式进行,因此不会有任何问题。