Linux mysql数据库设置区分大小写lower_case_table_names

来源:互联网 发布:手机电玩城刷分币软件 编辑:程序博客网 时间:2024/05/21 15:29
/etc/mysql/mysql.conf.d目录下,在mysql.cnf中的[mysqld]的后面添加一行代码
不区分大小写
lower_case_table_names = 1
区分大小写
lower_case_table_names = 0
那么,区分大小写会遇到什么问题呢?讲个我遇到的问题
今天部署项目到测试服务器,操作启动tomcat的时候,报错如下提示:
Caused by: org.activiti.engine.ActivitiException: couldn't create db schema: alter table ACT_ID_MEMBERSHIP
add constraint ACT_FK_MEMB_GROUP
foreign key (GROUP_ID_)
references ACT_ID_GROUP (ID_)
......
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Can't write; duplicate key in table '#sql-3032_70'
两段大概的意思就是:
无法给表(ACT_ID_MEMBERSHIP)添加外键(ACT_FK_MEMB_GROUP)约束;
...
无法写入,在表中存在重复的键(key)
综合可知,启动tomcat的时候,会去向一些表格添加一些外键约束,也就是mysql数据库的问题,但是mysql是我从本地导出的啊,本地启动是没有任何问题的,于是,连接数据库
mysql-> mysql -u root -p
mysql-> Enter password:输入密码
mysql-> show tables
发现数据库有多张重复的表,即大写的表、小写的表。才想起Linux mysql数据库表名是区分大小写,启动tomcat的时候我的项目初始化自动创建了很多大写表名的大写
mysql-> use test
mysql-> source /usr/mysql/myfiles/test.sql
但是我的sql脚本中的表名全部是小写的,于是恍然大悟,直接设置mysql数据库表明不区分大小写不就可以了
[root@localhost ~]# cd /etc/mysql/mysql.conf.d
[root@localhost ~]# vim mysqld.cnf
在mysqld.cnf添加代码
lower_case_table_names = 1

重启mysql服务
[root@localhost ~]# service mysql restart
然后再次去启动tomcat,没什么问题,有get一项技能,哈哈
阅读全文
1 0
原创粉丝点击