一、问题背景
很久之前,在 centos7 服务器上安装了一个 mysql5.7 的数据库,不过很长时间没有使用过,记得里面有一些重要数据,最近想起来可以用起来,但是密码忘记了。
此时,就想是否有一种办法,能找回密码或者修改密码的方案。
于是,就在网上找了一些方案,大体用的最多的就是skip-grant-tables
解法。
二、解法详解
本例的操作系统是centos7,mysql是5.7的版本,可能不同版本的命令稍有不同,网友可以自行根据系统版本查询相关命令。
2.1、skip-grant-tables模式启动
skip-grant-tables表示,在启动mysql时不启动授权表功能,可以直接免密码登录
2.2、修改root密码
2.3、新增管理员用户
如果你不想修改root密码,可以新增一个管理员用户,操作如下:
2.4、重启服务器
上面操作完成之后,其实还没有完,需要关闭授权表功能,重启服务器
三、测试连接
使用我们刚刚新建的admin用户进行测试登录
四、总结
如果您也出现忘记密码的情况,可以使用此方法解决当前问题。
mysql5.7.6版本后,废弃user表中password()方法,所以旧方法重置密码对mysql8.0版本是行不通的!
mysql8可以采用此方法修改root密码: