翼度科技»论坛 编程开发 mysql 查看内容

Windows和Linux环境下忘记MySQL连接密码的解决办法

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
目录

一、Linux下MySQL忘记root密码

情景再现

忘记MySQL连接密码

1、停止MySQL服务
  1. [root@localhost ~]# systemctl stop mysqld
复制代码
2、安全模式启动MySQL服务,并暂时跳过权限表验证以及禁用网络连接
  1. [root@localhost ~]# mysqld_safe --skip-grant-tables --skip-networking &
复制代码

  • mysqld_safe 是一个脚本,用于以安全模式启动MySQL服务器。这种方式启动MySQL时,它会检查一些基本条件,并在出现问题时尝试修复。
  • --skip-grant-tables 参数跳过了权限表的检查,这意味着在启动时MySQL不验证任何用户凭据,任何人都可以无需密码连接到MySQL服务器。
  • --skip-networking 参数则禁用了MySQL监听任何网络接口,只允许本地Unix套接字连接。这样做是为了增加安全性,防止在跳过权限检查时外部用户通过网络访问数据库。
3、更新mysql.user表中root用户的密码。
  1. update mysql.user set password=PASSWORD('123456') where user='root' and host='localhost';
复制代码
4、刷新MySQL的权限缓存
  1. flush privileges;
复制代码

二、Windows下MySQL忘记密码(8.0以上版本)

情景再现

忘记MySQL连接密码

1、通过管理员方式打开cmd,cmd程序路径一般在C:\Windows\System32


2、进入到mysql安装路径中的bin文件,停止mysql服务
  1. net stop mysql
复制代码
忘记bin文件路径可以跳过win+r输入services.msc找到MySQL右击属性查看,最好提前复制下来


3、跳过权限表验证

mysqld --skip-grant-tables在8.0及以上版本不使用了
  1. mysqld --console --skip-grant-tables --shared-memory
复制代码

4、再用同样的方法以管理员权限进入mysql安装路径中的bin文件

必须是另外一个cmd窗口哦
上一个跳过权限表验证的窗口也不要关闭

5、更新root用户密码
  1. update user set authentication_string='' where user='root';
  2. alter user 'root'@'localhost' identified by '123';
  3. flush privileges;
  4. alter user 'root'@'localhost' identified by '123';
  5. flush privileges;
复制代码

6、重新启动MySQL登录
  1. net start mysql
复制代码

7、使用新密码登录
  1. #不建议-p参数后直接加密码,这里为了展示方便
  2. mysql -uroot -p123
复制代码


来源:https://www.cnblogs.com/misakivv/p/18130322
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具