解决项目本地运行没有问题,连接服务器上的数据库报找不到数据表
一、连接服务器上的数据库后报错找不到表
最近要将项目部署到服务器,尝试连接服务器上的数据库报错,本地跑得好好的项目连接服务器上的数据库后报错找不到表。
可是打开数据连接工具,发现数据表是存在的
二、查看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
重启成功后连接服务器上的数据库就不会包找不到表的错误了。
感谢这位大哥的博客!!!