最近做一个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配置文件数据表名称都是采用大写,这个地方改为小写是否管用,没有亲自测试,希望有知道的朋友留个言,谢谢。