最近做一个java项目,开发环境是安装在windows下,使用mysql没有任何问题,部署环境采用linux,用mysqldump把数据库导入linux后程序报找不到数据表,很郁闷,google一番后发现mysql在linux下表是区分大小写的,唉,一直以为sql都不区分大小写的,特此记录一下;
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
1.数据库名与表名是严格区分大小写的
2.表的别名是严格区分大小写的
3.列名与列的别名在所有的情况下均是忽略大小写的
4.变量名也是严格区分大小写的
解决办法:
vi /etc/mysql/my.cnf
在[mysqld]后添加
lower_case_table_names=1
重启MYSQL服务
其中配置文件
lower_case_table_names=0 区分大小写
lower_case_table_names=1 不区分大小写
另外项目采用hibernate,我的习惯hibernate配置文件数据表名称都是采用大写,这个地方改为小写是否管用,没有亲自测试,希望有知道的朋友留个言,谢谢。
转载于:https://blog.51cto.com/lifanfly/550629