【问题标题】:Reset root password in MySQL 8在 MySQL 8 中重置 root 密码
【发布时间】:2018-09-27 16:47:52
【问题描述】:

当我使用How to Reset the Root Password中描述的方法重置root密码时,以mysqld --init-file=/home/username/init-file启动服务器不起作用。

它给出了以下错误。

[服务器] 无法打开 /var/log/mysqld.log 文件以记录错误:权限被拒绝。

权限正确。

服务器在我使用service mysqld start时启动。

我在 Fedora 28 上使用 MySQL 8.0.12。

【问题讨论】:

  • 你可以试试:mysqld --skip-grant-tables --skip-networking。如果成功,请以 root 身份登录(mysql -uroot 无密码)并使用SET PASSWORD FOR root@'localhost' = PASSWORD('new passwd') 或任何密码更改方法设置新密码。
  • 这些选项的结果相同。

标签: mysql


【解决方案1】:

如果您可以登录到您的 MySQL 服务器并且您想通过查询更改密码,您可以执行以下查询:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

或删除root密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

感谢这个博客:https://juejin.im/entry/5b06698cf265da0db3501fdd

在这里也回答了同样的问题:https://stackoverflow.com/a/54511940/1157720

【讨论】:

  • 终于经过数小时的搜索。你的救命稻草。
【解决方案2】:

只需在您的 Phpmysql shell 中键入以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'

【讨论】:

    【解决方案3】:

    您需要成为 /var/log/mysqld.log 的所有者或组,然后才能执行此操作。它崩溃了,因为它无法写入它的日志文件。

    如果您执行ls -l /var/log/mysqld.log,您可以查看谁拥有它,然后在尝试启动mysql 之前执行su - username

    您可能需要成为 root(操作系统 root 用户,而不是 mysql root)才能执行此操作,具体取决于您的系统设置方式。

    以下是权限和所有权应该是什么:

    https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-permissions.html

    【讨论】:

      猜你喜欢
      • 2012-02-08
      • 2018-06-09
      • 2014-03-06
      • 1970-01-01
      • 2014-01-13
      • 2011-05-14
      • 2016-10-13
      相关资源
      最近更新 更多