云数据库 MySQL 设置大小写不敏感失败

在创建云数据库 MySQL 实例时,可以设置表名大小写敏感是否开启,需注意:已创建完成的且数据库版本为 MySQL 5.5/5.6/5.7 的实例,支持在控制台通过修改参数 lower_case_table_names 来重新设置表名大小写敏感,但 MySQL 8.0 版本的实例仅支持在购买页创建实例时,选择是否开启表名大小写敏感,创建实例后无法通过修改 lower_case_table_names 参数来调整。
在。

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、MySQL 8.0不支持修改表名大小写的原因

关于数据库版本与表名大小写敏感参数设置的对应情况,你可参考下表。

参数 数据库版本 是否支持参数修改 说明
lower_case_table_names MySQL 5.5/5.6/5.7 支持 –
 MySQL 8.0 不支持 为避免参数修改导致应用程序出现问题,仅支持在购买页创建实例时,选择是否开启表名大小写敏感。

以下描述的报错情况和处理步骤针对数据库版本为 MySQL 5.5/5.6/5.7 的实例,如你的实例数据库版本为 MySQL 8.0,你仅需了解以上表名大小写敏感背景说明即可。

二、现象描述

设置数据库大小写不敏感失败,报错如下:

三、可能原因

存在大写的库表名。

四、处理步骤

核实该实例下的库、表是否都是小写,如有大写的库表名,需要全部改为小写,然后修改 lower_case_table_names 参数。

注意:修改 lower_case_table_names 参数会造成数据库重启。

·排查是否有大写的表

select table_schema,table_name from information_schema.tables where table_schema not in("mysql","information_schema") and (md5(table_name)<>md5(lower(table_name)) or md5(table_schema)<>md5(lower(table_schema)));

·排查是否有大写的库

select SCHEMA_NAME from information_schema.SCHEMATA where md5(SCHEMA_NAME)<>md5(lower(SCHEMA_NAME));

赞 (0)
上一篇 4天前
下一篇 4天前