最近在做毕业设计,因为要在不同电脑上写程序,数据库原先是安装在本地的,来回倒脚本很不方便,就申请了一个阿里云服务器,将数据库、redis等部署到服务器上,很方便,有服务器也可以很方便做很多事情。在导完SQL脚本,程序启动一直有个问题,提示表一直不存在,实际查询有这个表,也有数据,很郁闷,最后发现是linux MySQL对大小写敏感,windows的MySQL对大小写不敏感导致的,就趁机总结一些这个问题。
1.大小写敏感
这个是windows和linux的版本差别,往往发生在从windows上向linux上导入时,由于windows版本对大小写不敏感。 通过查询lower_case_table查询,值为1表示不区分大小写,为0表示区分大小写
show variables like '%lower_case_table_names%';
修改方法
vim /etc/mysql/my.cnf
[mysqld]
lower_case_table_names=1
# 重启
systemctl restart mysql.service
我使用的版本是MySQL8,不支持这么修改,修改完后启动会报错,需要先删除数据目录,然后修改配置,再启动服务,或者直接初始化的时候指定参数,忽略大小写
2.注意版本差别
导入时要格外注意MySQL版本的差别,MySQL的字符集和排序规则等