我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL 5.7及8.0版本数据库的root密码遗忘的解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL 5.7及8.0版本数据库的root密码遗忘的解决

注: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       

2、遗忘MySQL 8.0数据库的root密码解决办法

[root@mysql01 ~]# mysql --version        #查看MySQL版本
mysql  Ver 8.0.18 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)
[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件
[mysqld]      #在mysqld这行下写入下面内容
skip-grant-tables
            .................#省略部分内容
[root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效
[root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库
#将root密码设置为空
mysql> use mysql
mysql> update user set authentication_string='' 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            #直接登录数据库
mysql> alter user root@localhost identified by 'pwd@111';
mysql> flush privileges;
mysql> exit
#使用新密码进行登录测试
[root@mysql01 ~]# mysql -uroot -ppwd@111

———————— 本文至此结束,感谢阅读 ————————

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL 5.7及8.0版本数据库的root密码遗忘的解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Apache James数据库存储用户信息的密码加密问题及解决方案

ApacheJames采用MD5、SHA-1、SHA-256、SSHA和SSHA-256等加密算法来保护用户信息密码。以散列值形式存储密码,而不是明文。最佳实践包括使用强密码、定期更改密码和启用双因素身份验证。解决方案包括升级加密算法、增加盐值长度、实施哈希迭代和使用密码管理器。遵循这些措施可提高ApacheJames中密码的安全性,防止未经授权的访问。
Apache James数据库存储用户信息的密码加密问题及解决方案
2024-04-02

阿里云数据库密码格式化不了的原因及解决方法

在使用阿里云数据库的过程中,有时会遇到密码格式化不了的问题。本文将详细介绍这个问题的原因以及相应的解决方法。一、问题原因密码格式化不了可能是由于多种原因造成的,以下是一些常见的原因:密码包含特殊字符:阿里云数据库对密码的长度和复杂度有严格的要求,其中不允许包含特殊字符。如果密码中包含特殊字符,那么就可能导致密码格
阿里云数据库密码格式化不了的原因及解决方法
2024-01-25

编程热搜

目录