解决项目本地运行没有问题,连接服务器上的数据库报找不到数据表
一、连接服务器上的数据库后报错找不到表
最近要将项目部署到服务器,尝试连接服务器上的数据库报错,本地跑得好好的项目连接服务器上的数据库后报错找不到表。

可是打开数据连接工具,发现数据表是存在的

二、查看MySQL配置
网上查了一下发现是Linux系统上的MySQL默认是区分大小写的并且找大写,使用如下命令查看数据库表名大小写敏感配置
show variables like “%case%”;

解释:
1、变量 lower_case_table_names 是否对表名大小写敏感,默认为:0 (即对表名大小写敏感),值为:1 时在 mysql 里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用;设置为:1 就对表名大小写不敏感了,表名在硬盘上以小写保存,MySQL 将所有表名转换为小写存储和查找表上。该行为也适合数据库名和表的别名。
2、变量 lower_case_file_system 说明是否数据目录所在的文件系统对文件名的大小写敏感,其中:ON 说明对文件名的大小写不敏感,OFF 表示敏感。
三、设置 MySQL 为不区分大小写
1、进入 my.cnf 配置文件
命令如下:
vim /etc/my.cnf
2、搜索目标配置
搜索 my.cnf 配置文件有没有 lower_case_table_names 变量

没有找到,那好,咱们自己添加。
3、增加大小写不敏感配置
就是在 my.cnf 配置文件 加上如下配置:
lower_case_table_names=1

4、重启 MySQL 服务
重启命令如下:
service mysqld restart

重启成功后连接服务器上的数据库就不会包找不到表的错误了。
感谢这位大哥的博客!!!
项目部署到服务器后,连接数据库出现找不到表的错误。原因是Linux上的MySQL默认区分大小写。通过查看MySQL配置,发现lower_case_table_names变量默认为0,即区分大小写。为解决此问题,需修改my.cnf配置文件,将lower_case_table_names设置为1,使其变为不区分大小写,然后重启MySQL服务,从而解决找不到表的问题。

被折叠的 条评论
为什么被折叠?



