文档首页/ 云数据库 RDS/ 故障排除/ RDS for MySQL/ 参数类/ RDS for MySQL大小写参数敏感类问题
更新时间:2024-12-13 GMT+08:00

RDS for MySQL大小写参数敏感类问题

场景描述

用户将RDS for MySQL的“lower_case_table_names”设置成“大小写敏感”的状态时,创建了带有大写字母的表,如“tbl_newsTalking”,但后期改变了大小写敏感的设置状态后,无法找到该表。

案例:在执行备份恢复到新实例的时候,如果新实例的“大小写敏感”参数值与备份时原实例的参数值不一致,会导致恢复失败。

更多敏感参数,请参见《云数据库RDS用户指南》中“RDS for MySQL参数调优建议”的内容。

  • 对于MySQL 5.6、5.7版本,支持在管理控制台或API创建数据库实例时指定表名大小写敏感,以及实例创建完成后设置表名大小写敏感(lower_case_table_names)。
  • 对于MySQL 8.0版本,仅支持在管理控制台或API创建数据库实例时指定表名大小写敏感,创建完成的MySQL 8.0实例不支持设置表名大小写敏感(lower_case_table_names)。

解决方案

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. “实例管理”页面,单击主实例名称,进入实例的概览页面。
  5. 在左侧导航栏中选择“参数修改”
  6. 修改“lower_case_table_names”值为“0”,即区分大小写。
  7. 单击“保存”,在弹出框中单击“是”,保存修改。
  8. 返回实例列表,选择“更多 > 重启实例”。
  9. 在弹框中,单击“确定”重启实例,使参数修改生效。
  10. 登录数据库,将带大写字母的表名,改为小写字母。
  11. 修改“lower_case_table_names”值为“1”,即不区分大小写。
  12. 再次重启实例。
  • 数据库名、变量名严格区分大小写。
  • 列名与列的别名在所有的情况下均是忽略大小写;字段值默认忽略大小写。
  • 通过管理控制台的购买实例页面设置是否区分表名大小写。详情请参见购买实例
  • 通过API创建数据库实例设置“lower_case_table_names”指定大小写是否敏感。详情请参考创建数据库实例
    取值范围:
    • 0:表名称大小写敏感。
    • 1:表名将被存储成小写且表名称大小写不敏感。