忘记 mysql 的 root 密码怎么找回

本贴最后更新于 1945 天前,其中的信息可能已经水流花落

首先找到 mysqld 的路径

which mysqld

image.png

敲命令查看默认的 mysql 配置文件位置 /usr/sbin/mysqld --verbose --help |grep -A 1 'Default options'

image.png

打开配置文件 my.cnf,并添加 skip-grant-tables,跳过权限的检查

用空密码连接数据库,并修改数据库的 root 密码

mysql -u root

mysql> set password = password('390032540');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> update user set password=password('390032540') where user='root' and host='localhost';
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Database changed
mysql> update user set password=password('new password') where user='root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

然后刷新权限表

flush privileges;

再重新登录的时候就必须输入密码了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

最后,不要忘记把刚才那个跳过权限检查的配置给删掉

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    692 引用 • 535 回帖
1 操作
cyy3900 在 2019-08-25 16:58:00 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...