MySQL 设置不区分大小写

Linux系统下 MySQL 设置不区分大小写

lower_case_table_names

参数详解:

lower_case_table_names=1

其中: 0:区分大小写,1:不区分大小写

查询当前设置:

mysql> show variables like '%lower%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+
2 rows in set (0.01 sec)

lower_case_file_system
表示当前系统文件是否大小写敏感,只读参数,无法修改。
ON 大小写不敏感
OFF 大小写敏感
lower_case_table_names
表示表名是否大小写敏感,可以修改。

lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。
lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。

网上大多数解决方案是:

1、使用root权限登录,修改配置文件

/etc/my.cnf

2、在[mysqld]节点下,加入一行:

lower_case_table_names=1

3、重启MySQL :

service mysqld.server restart

在部分版本的MySQL下,如果之前有大写的表,修改参数后改表会提示不存在,而且也无法修改,应用程序就操作不了。

问题剖析:

如果在lower_case_table_names=0情况下已经导入了大量的表和数据,表名有大写,有小写,此时再换成lower_case_table_names=1会出错。

解决办法:在lower_case_table_names=0时,将表名全部改成小写的;如果有数据库名称中存在大写字母,也需同时改名,改名方法为新建一个小写的数据库, 再改表名。(最方便的是直接使用MySQL界面客户端修改)

全部改名之后,再设置lower_case_table_names=1,重启MySQL。

更改后查询确认:

mysql> show variables like '%lower%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | ON   |
| lower_case_table_names | 0     |
+------------------------+-------+

重启测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴小雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值