华为云云数据库rdsRDS 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)。

解决方案

登录管理控制台。
单击管理控制台左上角的,选择区域和项目。
单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
在“实例管理”页面,单击主实例名称,进入实例的基本信息页面。
在左侧导航栏中选择“参数修改”。
修改“lower_case_table_names”值为“0”,即区分大小写。
单击“保存”,在弹出框中单击“是”,保存修改。
返回实例列表,选择“更多 > 重启实例”。
在弹框中,单击“确定”重启实例,使参数修改生效。
登录数据库,将带大写字母的表名,改为小写字母。
修改“lower_case_table_names”值为“1”,即不区分大小写。
再次重启实例。

数据库名、变量名严格区分大小写。
列名与列的别名在所有的情况下均是忽略大小写;字段值默认忽略大小写。

通过管理控制台的购买实例页面设置是否区分表名大小写。详情请参见购买实例。

图1 数据库配置

通过API创建数据库实例设置“lower_case_table_names”指定大小写是否敏感。详情请参考创建数据库实例。

取值范围:

0:表名称大小写敏感。
1:表名将被存储成小写且表名称大小写不敏感。

父主题: 参数类

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家