您的位置:首页 > 运维架构 > Linux

linux下设置mysql不区分大小写

2015-04-29 14:04 417 查看
[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里面的映射的时候表名字用小写;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: