开发环境
- 操作系统:Ubuntu 19.04
- 数据库:MySql 5.7
问题分析
- 本身Mysql是不存在大小写敏感问题的,引起问题的原因是来自于操作系统。我将公司分配的电脑重装成了Ubuntu,而同事的电脑还是预装的Windows10。在SpringBoot框架上实现定时任务,在Mybatis XML文件中总是喜欢将定时任务的表名设为大写的形式,而Mysql数据库中的表名为小写的形式。这在Windows10运行程序不会存在问题,但是在Ubuntu操作系统环境下运行程序就会发生表不存在的问题(table not extis)。
- 在Ubuntu操作系统下配置Mysql数据库时,安装了Mysql的最新版本8.0.13,按照网上的教程解决大小写敏感的问题总是不成功,教程上并没有说明所使用Mysql的版本,从实验结果来看基本上都是Mysql 5.7的教程,不同版本的文件配置上还是存在差异。
问题解决
- 将Mysql 8.0.13 降级到 Mysql 5.7(先删除后重装)
- sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,在[mysql]标签下配置lower_case_table_names=1
- /etc/init.d/mysql restart 重启mysql 服务使配置生效,如果是Mysql 8.0.13版本在/etc/init.d目录下找不到mysql文件。
Note
- Mysql 卸载教程:Ubuntu Mysql卸载
- Mysql 安装教程:Ubuntu Mysql安装