hibernate 中mysql在linux下请求数据 返回表不存在或字段不存在,且在window下是正常的
hibernate 报错: Table ‘XXX.表名’ dosn't exist
在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?
原来是LINUX下的MYSQL默认是要区分表名大小写的
让MYSQL不区分表名大小写的方法其实很简单:
1.用ROOT登录,修改/etc/my.cnf (centos) 或 /etc/mysql/my.cnf文件中(ubuntu下)
2.在[mysqld]下加入一行:lower_case_table_names=1 解释:(0,区分大小写; 1,不区分)
3.重新启动数据库即可
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
1.数据库名与表名是严格区分大小写的
2.表的别名是严格区分大小写的
3.列名与列的别名在所有的情况下均是忽略大小写的
4.变量名也是严格区分大小写的
参考链接:https://blog.csdn.net/qq_22940759/article/details/51623147