近期,我将项目数据库放在我的阿里云服务器上,项目出现表名大小写敏感问题,查了一下资料,终于找到解决的办法,特此记录一下。
1、在服务器上,mysql中跑一下命令
show variables like "%case%";
结果如下:
解释:
lower_case_table_names 0 //代表对表名大小写敏感 1 //代表对表名大小写不敏感(我想要的效果)
所以在项目中可能会出现表名大小写敏感问题的发生
2、修改配置文件
先将mysql服务关闭 systemctl stop mysqld;
在mysql配置文件 一般是在 /ect/my.cnf 具体以实际路径为准
在配置文件中添加一下配置
[mysqld]
lower_case_table_names= 1
将mysql数据文件删除(注意:一定要将自己的数据备份起来,因为这一步操作会将自己的数据全部删除)
mysql的数据文件位置一般是在 /var/lib/mysql (具体根据自己实际路径来)
运行mysqld命令,初始化mysql
mysqld --defaults-file=/etc/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console
3、进入数据查看
首先重启mysql
systemctl strat mysqld;
进入数据库
mysql -u root -p
这时你会发现,数据库进不去,提示密码错误,不要慌 QAQ
打开mysql日志,查看密码
mysql日志路径一般是在 /var/log/mysql (具体根据实际路径来)
查看日志可以找到刚辞初始化后的mysql密码如下:
接下来用该密码进入mysql(必须修改密码,mysql强制性要求的)
再次运行命令查看
show variables like "%case%";
可以看到,数据已经变更过来,接下来导入数据,就可以正常使用了