【问题标题】:Unable to reset lost MySQL root password无法重置丢失的 MySQL root 密码
【发布时间】:2018-04-13 05:16:56
【问题描述】:

我丢失了 root 密码并试图重置它。我有 sudo 访问权限。阅读其他页面,我正在尝试使用 skip-grant-tables 选项的以下方法:

$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
$ sudo mysqld --skip-grant-tables &
[1] 17849
$ mysql -u root mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[1]+  Exit 1                  sudo mysqld --skip-grant-tables

当我在其他地方阅读时,我也尝试添加-h 127.0.0.1 选项。我不知道 mysqld.sock 应该在哪里,如果它不是它试图找到的地方,我有点迷失了下一步该去哪里。

我可以在另一个 MySQL 用户/密码上输入 MySQL 提示,但该用户无权访问“mysql”数据库以重置密码。

有什么帮助吗?

【问题讨论】:

  • 您必须以 root 身份执行mysql -u root 命令,即通过sudo
  • 同样的错误不断发生。我注意到它试图访问的 .sock 文件仅在 mysqld 运行时存在。

标签: mysql


【解决方案1】:

检查this question 是否有相同的错误

为了找回密码,您只需按照以下步骤操作:

  1. 使用命令sudo service mysql stop停止MySQL服务器进程
  2. 使用命令sudo mysqld_safe --skip-grant-tables --skip-networking &启动MySQL服务器
  3. 使用命令 mysql -u root 以 root 用户身份连接到 MySQL 服务器

此时,您需要发出以下 MySQL 命令来重置 root 密码:

mysql> use mysql;
​mysql> update user set authentication_string=password('NEWPASSWORD') where user='root';
​mysql> flush privileges;
​mysql> quit

其中 NEWPASSWORD 是要使用的新密码。

  • 使用命令 sudo service mysql restart 重新启动 MySQL 守护程序。您现在应该可以使用新密码登录 MySQL。

就是这样。您现在可以设置、重置和恢复您的 MySQL 密码。

Reference

【讨论】:

  • 您的链接表明发生错误是因为 mysqld 未运行。应该是这样,因为我们故意停止它,我不想启动它,对吧?我还是尝试了你的命令,但仍然是同样的错误。
猜你喜欢
  • 1970-01-01
  • 2021-01-07
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 2012-12-04
  • 2012-02-08
  • 2018-06-09
相关资源
最近更新 更多