忘记root密码之免重启重置

作者: Huang Jinqiang 分类: MySQL 发布时间: 2017-04-04 20:15

忘记root密码怎么,一般的思路是关闭实例后使用--skip-grant-tables参数重启MySQL,再重置密码,这期间有一段时间MySQL是无法对外提供服务的;MySQL8.0之前mysql.user是MyISAM表,可以根据MyISAM表的特点,无需重启实例修改密码;MySQL8.0开始放弃MyISAM引擎,经过测试是需要重启的

下面是免重启重置MySQL root密码(适用于MySQL5.7及以前的版本)

  1. 有两个server-id分别为3307101和3309101的实例

  1. 3307101实例测试访问

  1. 在3309101实例创建一个库testdb(库名自己随意定义)

  1. 把3307101实例mysql库下的user.*拷贝到3309101实例的testdb库下

  1. 在3309101实例下修改testdb库的user表的密码

6.把testdb库下的user.*拷贝回3307101实例mysql库目录下

  1. 给3307101一个HUP信号,重新加载配置

  1. 用新密码连接3307101实例

总结:
(1) --skip-grant-tables是官方推荐的方法,但要重启实例;
(2) MySQL8.0以前mysql.user表是MyISAM引擎表,可以利用这个特点无需重启实例,不会对业务造成影响;
(3) 为了安全起见, 建议做好密码的保管工作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注