MySQL-8.0.21数据库密码忘了如何解决?
工作需要,最近搞数据库,但是密码不记得了,网上找了很多方法,没有一个可以一步到位解决成功的。具体方法总结如下,避免以后再掉坑里儿。
首先,执行操作之前确保mysql服务器端已结束运行。
一、找到mysql安装目录下的bin文件夹,在此打开命令行界面,输入以下语句并回车:
mysqld --console --skip-grant-tables --shared-memory
这一步主要是为了跳过mysql的用户验证。
二、在mysql安装目录下的bin文件夹下,重新打开一个新的命令行界面,此时可以直接登录数据库,提示输入密码时直接回车
mysql -u root -p
三、登录后选择mysql数据库,用户名密码保存在user表中
1、查看所有数据库:show database; 2、选择mysql数据库:use mysql 3、查看所有表:show tables
4、查看账户信息:select user,host,authentication_string from user;
四、先执行下面的语句将密码设为空
UPDATE user SET authentication_string = '' WHERE User = 'root';
五、设置新密码:
ALTER user 'root'@'localhost' identified by '新密码';
此时可能会报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute。
那么就执行: flush privileges; 去刷新权限;继续设置新密码
六、上述步骤执行完之后记得要刷新权限
flush privileges;
至此密码就修改成功。可以启动mysqi服务,登录mysql去验证是否成功。