首页 > 数据库 > MySQL > 正文

MySQL 5.7及8.0版本数据库的root密码遗忘的处理

2024-07-24 12:35:41
字体:
来源:转载
供稿:网友
  注:MySQL5.7破解root密码,跳过密码认证登录到数据库,直接修改表中的密码即可,但是MySQL 8.0则不可以这样修改root密码,需要跳过密码认证登录到数据库后,先将root密码设置为空,然后才可以登录到数据库,修改root密码。
 
  1、遗忘MySQL 5.7数据库的root密码解决办法
  方法1(推荐):
  [root@mysql ~]# systemctl stop mysqld        #停止MySQL服务
  [root@mysql ~]# mysqld --user=root --skip-grant-tables    #使用mysqld指令启动mysql服务,跳过授权表
  #上述命令执行后,会一直占用当前终端,需要再开启一个终端,
  #也不要想着放到后台运行了,放到后台3306端口不会监听的
  [root@mysql ~]# ss -anpt | grep 3306     #再开启一个终端,确定端口在监听
  LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=8282,fd=33))
  [root@mysql ~]# mysql -uroot           #直接使用root用户登录,无需密码
  mysql> update mysql.user set authentication_string=password('1234')
      -> where User='root' and Host='localhost';
          #更改root密码为“1234”
  mysql> flush privileges;          #刷新权限
  [root@mysql ~]# kill 8282         #将之前mysqld启动时占用的终端进程号kill掉,切忌不要使用-9选项
  [root@mysql ~]# systemctl start mysqld      #启动MySQL服务,使用新密码登录即可
  如果上面的过程中,使用kill -9来结束mysqld占用的终端,那么再次启动可能会报错,sock文件被锁定,此时,需要将你mysql的sock文件删除掉,我这里的sock文件在/tmp下,分别时mysql.sock.lock和mysql.sock这两个文件,删除后再次启动MySQL即可。
 
  方法2:
  [root@mysql01 ~]# mysql --version        #确定MySQL版本
  mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper
  [root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
  [mysqld]      #在mysqld这行下写入下面内容
  skip-grant-tables
              .................#省略部分内容
  [root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效
  [root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库
  #修改root密码为pwd@123,并刷新权限
  mysql> use mysql;
  mysql> update user set authentication_string = passwoord('pwd@123') where user = 'root';
  mysql> flush privileges;     #刷新权限
  mysql> exit
  #配置密码验证,使用新密码登录
  [root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
  [mysqld]
  skip-grant-tables            #删除此行
  [root@mysql01 ~]# systemctl restart mysqld          #重启使更改生效
  #使用新密码即可成功登录
  [root@mysql01 ~]# mysql -uroot -ppwd@123       
 
  #使用新密码进行登录测试
  [root@mysql01 ~]# mysql -uroot -ppwd@111

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表