MySql表名大小写敏感问题处理

7 篇文章 0 订阅
4 篇文章 0 订阅

最近公司有个项目需要将原来的MySql数据库迁移到Linux系统下,直接测试网页应用,突然出现了许多表找不到的错误,通过查询资料,发现原来在Linux下的Mysql的表名是大小写敏感的,并且发现有一个参数可以控制表名的识别方式,参数如下:

lower_case_table_names = 1  表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0  表名存储为给定的大小和比较是区分大小写的 
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的

为了解决应用在Linux下访问Mysql表的问题,我们做了以下的处理:

1.将数据库表名统一转换为小写

这里不需要手工来改下,可以通过自动生成改写语句来操作,生成转换的语句如下:

SELECT concat( 'alter table ', TABLE_NAME, ' rename to ', LOWER( TABLE_NAME ), ';' )  FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名'

生成后将语句拷贝到Mysql执行即可。

2.修改Mysql参数,并重启MySQL数据库

lower_case_table_names=1

最后可以欢乐的使用系统了:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值