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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容