MYSQL 大小写引发的问题...

今天从一个线上数据库迁移数据到开发库,

用mysqldump 导出导入后,用DataGrip连上开发库,一切都正常,数据和表都过来了;

然后跑起来程序(ORM使用的是hibernate),抛出了 Table XXX doesn't exist的异常...一脸懵逼,表名名就在哪里,为何你却视而不见?

然后想到了,是不是引擎的问题,查了一下,发现引擎的确不一样,由于线上数据库使用的是InnoDB引擎,而我在Centos上安装的mysql,其引擎是MyISAM

然后,修改重启,然并卵...

后来,终于搜到了,原来是Centos下面mysql默认是会区分大小写的...,终于按说明修改了配置文件,重启后,表终于被hibernate发现了...

在这里特别备注一下一些引擎相关的操作和命令:


1. 查看数据库支持的引擎:

show ENGINES;

2. 查看数据库当前引擎:

show variables like'%storage_engine%';

3. 修改数据库引擎:

 编辑 /etc/my.ini 中,添加:

default-storage-engine=InnoDB

4. 修改大小写敏感

编辑 /etc/my.ini 中,在[mysqld]添加:

lower_case_table_names=1


重启数据库 /etc/rc.d/init.d/mysqld restart

你可能感兴趣的:(MYSQL 大小写引发的问题...)