admin管理员组

文章数量:1530517

Mysql8.0 忘记密码怎么办

今天晨雨帮身边小伙伴解决了mysql8.0无法连接上的问题。中间碰到的一些问题和大家分享一下。

  1. 跳过密码登录时不成功
  2. 修改密码时不成功
  3. navicat连接时报#2000的问题

1.首先先停止mysql服务。可通过 net stop mysql 或者任务管理器中关闭。

2.我们进入命令提示符(管理员登陆)操作,进入mysql目录中bin文件夹下,mysql的启动方法与客户端启动方法都在这里面调用。当然我们需要用账号密码登录。

mysql8.0与其他版本不同的地方在于无法直接使用mysqld --skip-grant-tables来跳过密码登录。在这没深入研究,版本是不能这么做。在这我们使用mysqld -console --skip-grant-tables --shared-memory来跳过权限验证。

3.之后我们打开新cmd(管理员登录)再去mysql-bin目录下执行mysql发现已经可以进入mysql,这时候我们便可以对本地数据库进行相关操作。

  1. 首先我们先刷新我们的权限,flush privileges;然后修改密码。alter mysql.user root@localhost identified by 'newpasswd';
  2. 或者我们的个人信息存储在mysql库的user表中。我们可以使用select * from mysql.user;直接查找到root用户名下对应的密码。


当然此密码时md5加密的,但是机智的程序员们从网上搜下md5解密便能得到自己的密码。SODM5免费的。

4.但晨雨的小伙伴却依然不能依靠root和对应的密码连接上数据库,这是为啥子嘛。我一度怀疑他连接的不是自己本地的数据库,后面验证这个直觉很准确。后来发现小伙伴在映射域名时修改了root下的host。这儿root对应的host为通配符%,或者localhost便可以root用户名登陆,否则会连接不上哦。
这儿可用update user set host = '%' where user = 'root';修改对应的host。
大功告成,我怀着激动的心情去navicat点下连接,#2000 unknowError。这又是啥子嘛。
经过一番挣扎,发现时SSL认证的问题,只要连接的时候在SSL中打勾便可。

大功告成,开心打卡。

本文标签: 忘记密码