1.问题描述
版本:【CentOS8】【MySQL5.7】
问题:远程使用navicat连接不上数据库,后来试了在linux中都登不进去。根据提示应该是密码不对,此文主要介绍密码修改
和一些注意事项。
2.解决方法
1)因为现在登不进去,所以没法修改密码,首先在linux中:
在最下面加上一行skip-grant-tables:
这行意思是跳过授权表,就是可以不用用户名密码登录。
然后重启mysql:
2) 在mysql中修改密码:
直接输入mysql就可以登入:
然后输入use mysql ,使用mysql这个数据库,再update user表的authentication_string字段:
然后编辑一开始修改的/etc/my.cnf文件将skip-grant-tables删掉。
最后重启数据库就可以了,已经可以用密码登陆了,远程也可以连接。
3.注意事项
1)我的数据库版本是5.7,所以密码对应的字段是authentication_string,老版本可能是password;
2)字段set的值一定要是password("设置的密码"),一开始我就大意写成了="123456",结果是登不进去的。因为
password("设置的密码")对密码进行了mysql5加密,在验证密码时mysql会对存储的密码值进行解密再验证,直接
set成123456自然不会验证成功。