mysql 5.7.25 修改大写问题_MySQL5.7修改大小写敏感后table doesn't exit

问题:在Linux上安装了MySQL5.7,应用系统已经初始化,数据已经进入了数据库。使用应用系统时才发现系统有个模块是没有区分大小写在操作数据库的,所以后台报数据库插入SQL出错。因此想要修改MySQL为大小写不敏感。这儿问题就来了:按照网上的大部分的说法,修改/etc/my.cnf,将[mysqld]下的lower_case_table_names设为1(去掉该行前面的#即可)保存,重启mysql即可(sevice mysqld stop;service mysqld start)。事实上,这样修改之后连接数据库,所有的表都读不了了,报table doesn't exit的错误,虽然show tables还是可以看到那些table。

解决办法:按照官方文档的说法,将数据库设置为大小写不敏感后,保存的数据库和表都是小写的。如果修改配置前没有任何数据插入,那么可以直接重启使用;而如果在大小写敏感的情况下已经插入了数据,那么需要先修改已有的数据库和表名为小写:RENAME TABLE T1 to t1; 然后进行修改my.cnf的操作。假如数据库和表很多,可以先dump出来,然后drop掉数据库,再修改my.cnf,重启数据库,再将数据导入。我采用的是后面一种方法:mysqldump。

具体操作:

1、使用mysqldump导出数据库。

在命令行输入:mysqldump -u mysql --databases regist > regist.sql -p

然后输入mysql用户的密码。(注意,如果不输入参数-p的话,会出现access denied的错误)

2、进入mysql命令行,将数据库删除。

mysql -u mysql -p

输入mysql用户的密码。

drop database regist;

3、停掉数据库,修改my.cnf文件,启动数据库。

service mysqld stop

修改/etc/my.cnf,将[mysqld]下的lower_case_table_names设为1(去掉该行前面的#即可)保存。

service mysqld start

4、恢复数据库。

mysql -u mysql < regist.sql -p

输入mysql用户的密码。

现在进入mysql查看导入的数据库和表,都是小写的了。 至于你的应用系统能不能直接使用这个修改后的数据库,就需要测试了。反正我试了下我的应用系统,比较傻,操作的时间点过去了,只能删除数据库,重新运行应用系统插入数据(意味着上面做dump的操作都是多余的了)。只不过现在是不会报错的了。

官方文档参考:

原文如下:<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值