linux下设置mysql不区分大小写

[WARN ] [2015-04-29 13:41:683] org.hibernate.util.JDBCExceptionReporter - SQL Error: 1146, SQLState: 42S02
  [ERROR] [2015-04-29 13:41:683] org.hibernate.util.JDBCExceptionReporter - Table 'aa.columninfoTotal' doesn't exist
  [ERROR] [2015-04-29 13:41:684] org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception occurred during processing request: could not initialize a collection: [com.future.cms.pojo.Columninfo.columninfoTotals#36]
  org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.future.cms.pojo.Columninfo.columninfoTotals#36]


mysql数据库从windows迁到linux上,结果程序跑不起来了,不停提示“*** table doesn't exist”,查了一下,linux下默认mysql是区分大小写的,具体规则如下:

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

1、数据库名与表名是严格区分大小写的;

2、表的别名是严格区分大小写的;

3、列名与列的别名在所有的情况下均是忽略大小写的;

4、变量名也是严格区分大小写的;

MySQL在Windows下都不区分大小写。

如果改成不区分大小写,修改、/etc/my.cnf,在[mysqld]后面加上lower_case_table_names=1,重启mysql服务即可。


方法二:

修改程序,Hibernate映射的时候,.hbm.xml里面的映射的时候表名字用小写;


你可能感兴趣的:(linux下设置mysql不区分大小写)