Linux重置MySQL8.0密码
系统版本:CentOS 7.5.1804
MySQL版本:8.0.28
没改过密码
MySQL版本在8.0以上安装时会自动生成一个默认的密码,这个密码比较复杂可以通过命令查看
grep 'temporary password' /var/log/mysqld.log
这里 ggovBlr2yg)h
就是默认密码
可以通过输入这个密码进入数据库
默认密码不正确
在mysql的配置文件 /etc/mysql.cnf中增加一个跳过输密码的配置
skip-grant-tables
重新启动mysql服务
systemctl restart mysqld.service
输入密码时直接回车即可进入数据库
进入数据库后
进入数据库后,再通过修改密码的命令来修改密码
use mysql;
update user set authentication_string=password("新密码")where user="root";
如果这里成功就直接修改成功了。注意修改成功后要,将配置文件新加的删除或者注释掉。
这里要注意,mysql默认的规则是大小写、特殊字符、8位以上,必须都要满足才能修改成功。
修改失败
如果报错就用下面的方式
update user set authentication_string='' where user='root';
将密码设置为空,然后将配置文件新加的删除或者注释掉,重新启动MySQL服务。
systemctl restart mysqld.service
进入mysql回车即可
因为没有密码,进来就要输入新密码,其他命令无效。
这里要注意,mysql默认的规则是大小写、特殊字符、8位以上,必须都要满足才能修改成功。
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
提示OK就是修改成功