繁体   English   中英

Amazon RDS中的lower_case_table_names设置

[英]lower_case_table_names setting in Amazon RDS

我们在Amazon RDS中有一个数据库实例,只有一个数据库。 (默认情况下,其lower_case_table_names = 0)。

现在我在同一个实例中创建了另一个DB。 对于新站点,由于区分大小写的表名,其给定表未找到错误。

所以我在RDS中为该实例更改了lower_case_table_names = 1(因为不允许2)。 新站点开始工作但旧站点未找到错误表。

有解决方案吗 我想设置lower_case_table_names = 1,因此新DB不会出现问题。

提前致谢!

我遇到了同样的问题,默认情况下,当您使用AWS RDS创建新的MySQL实例时,它将使用default-parameter-group,问题是您无法更改此默认参数组中的任何参数。 要更改参数值,您必须创建一个新参数组。 在这里你是如何做到的:

  1. 在左侧面板上,转到参数组>创建参数组>给出名称和描述>创建>搜索所需的参数,在本例中为“lower_case_table_names”>编辑参数,将其更改为1>保存。
  2. 在左侧面板中,转到Instances>在内容面板中选择Instance Action> Modify> Database Options> Database Parameter Group>选择所需的参数组> Continue> reboot the instance>等待几分钟然后全部设置完毕

在此输入图像描述

在此输入图像描述

希望能帮助到你 :)

通过设置lower_case_table_names=1配置后,尝试导出数据库并再次导入。

如果设置lower_case_table_names=1参数,则DB将从该点开始将所有新创建的表名转换为小写。 在查找之前,它还会将所有数据库查询中的表名转换为小写。

但是,如果在启用参数之前已在DB中有一组表,则不会更改它们。 由于查询转换为小写,您的应用程序将告诉您“找不到表”,因为实际表是大写的,查找是小写的。

我可以通过以下步骤解决此问题。

  1. 在启用参数之前将所有DB导出到文件( 参考
  2. (如果已启用,请禁用该参数并重新启动服务器)
  3. 从数据库服务器中删除所有数据库
  4. 启用参数
  5. 重新启动服务器以应用更改
  6. 导入导出的数据库

这将在导入时将所有新表名转换为小写。 由于查找也以小写形式发生,因此不会有任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM