解决Linux中mysql大小写敏感问题
linux系统为:CentOS / 8.4 x86_64 mysql版本为:5.7.36
**
步骤如下:
**
1. 首先停止mysql运行:systemctl stop mysqld.service
查看是否成功: service mysqld status
2. 在my.conf中添加字段:lower_case_table_names = 1
顺便看看mysql的data文件夹在哪里(如果一开始没有指定的话)
3. 之后删除mysql的data文件夹[/var/lib/mysql],准备重新初始化,初始化完成之后可以看到会新生成mysql文件夹
4. 初始化命令:mysqld --initialize --user=root --lower-case-table-names=1****并查看初始密码 grep ‘password’ /var/log/mysqld.log
5. 完成初始化之后你的初始密码可能登录不上mysql【可能是因为原来的数据库没删除把】,所以现在通过配置文件的方法修改密码,如果正常可跳到步骤10重新设置密码
6.打开mysql的配置文件my.conf
vim /etc/my.conf
7.在配置文件添加一句 skip-grant-tables ,然后wq保存退出
8.启动mysql systemctl start mysqld.service 启动的时候可能会报错,原因是因为初始化完成的mysql文件夹(找不到可以看过程3)权限不够,这个时候只要设定这个文件夹为 777就好了,然后再次启动mysql
chown -R root:root /var/lib/mysql
chmod -R 777 /var/lib/mysql
9.输入 mysql -uroot 回车即可进入到数据库
10.输入语句 use mysql;
update mysql.user set authentication_string=password(‘你想要设置的密码’) where user=‘root’;
密码已经修改成功,这时候别着急退出去,因为还没有设置远程连接数据库
11.设置远程连接数据库
执行:
update user set host = ‘%’ where user = ‘root’;
FLUSH PRIVILEGES;
现在就可以连接数据库了(别忘了防火墙的端口限制)
12.现在停掉mysql systemctl stop mysqld.service 在删除刚刚配置文件中加的那句跳过验证
13.现在就可以启动myqlsy stemctl start mysqld.service 并连接数据
已经解决掉大小写敏感问题!