使用–skiptables重置MySQL8 root用户的密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用–skiptables重置MySQL8 root用户的密码相关的知识,希望对你有一定的参考价值。
参考技术A 如果不幸忘记或丢失了 mysql root用户的密码,需要一种方法来以某种方式恢复它。 我们需要知道的是密码存储在用户表中。 这意味着我们需要想办法绕过 MySQL 认证,这样我们才能更新密码记录。幸运的是,有一个简单的实现,本教程将指导您完成在 MySQL 8.0 版本中恢复或重置 root 用户密码的过程。
根据 MySQL 文档,有两种方法可以重置root用户的密码。其中一种方法是使用 --skip-grant-tables 选项启动 MySQL 服务。 这不太安全,因为当服务以这种方式启动时,所有用户都可以在没有密码的情况下进行连接,不过这种方法比较简单,我们首先来看看这种方法。
如果服务器启动--skip-grant-tables,--skip-networking 选项会自动激活,因此远程连接将不可用。
首先停止MySQL服务
使用 选项 --skip-grant-tables 启动MySQL服务
然后,您只需运行mysq即可连接到mysql服务器。
由于使用 --skip-grant-tables 选项启动服务时禁用了帐户管理,因此我们将不得不重新加载授权。 这样我们以后就可以更改密码:
现在可以运行以下查询来更新密码。 确保将“new_password”更改为您希望使用的实际密码。
现在停止 MySQL 服务器,然后正常启动它。
现在使用新密码再次连接MySQL
启动mysqld时,如果遇到下面的错误
搜索一番,参考文章2和3给出了各种可能性,通过查询可以看出确实有个mysqld服务未关闭,可是之前我确实关闭了mysql,不知道怎么回事。
只能通过kill命令杀死mysql
mysql8.0版本忘记root密码
1、先关掉系统服务
net stop mysql
2、进入mysql安装目录的bin文件中,以管理员的方式运行cmd,然后输入如下命令,实现无密码登陆
mysqld --console --skip-grant-tables --shared-memory
3、以空密码登入系统
mysql.exe -u root
4、重置密码
UPDATE mysql.user SET authentication_string='root' WHERE user='root' and host='localhost';
5、ok
以上是关于使用–skiptables重置MySQL8 root用户的密码的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException: Access denied for user 'roo'@'localhost' (using password: YES