【问题标题】:Resetting mysql root password重置mysql root密码
【发布时间】:2018-06-09 18:09:24
【问题描述】:

我了解这是更改或重置 mysql root 密码的最安全方法。我这样做是因为 10 次中有 8 次安装程序不会提示我输入 root 密码。

所以我运行命令:

sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root
use mysql;

然后,根据您使用的 mysql 或 maria 版本,您可以键入:

update user set password=PASSWORD("mynewpassword") where User='root';

或

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

就我而言,我输入了第一个。然后我通过以下方式刷新权限: flush privileges; 然后我通过键入以下内容退出 mysql:quit。

此时一切顺利。然后我通过以下方式重新启动mysql服务器: sudo /etc/init.d/mysql start

我从终端得到“OK”。但是,当我尝试以 root 身份登录时 我收到令人愉快的错误消息: ERROR 1698 (28000): Access denied for user 'root'@'localhost'

我 100% 确信我输入了正确的密码。为什么会这样?

【问题讨论】:

  • 为什么用第一种方法,第二种方法好像更安全。
  • 正如我所说,第一种方法应该适用于我的 mysql 版本。我想我也可以尝试另一个,但它不应该工作。
  • 是的,很难看出您可能做错了什么。但是,如果每次有人说他们 100% 确信自己输入的内容是正确的,我都会得到一分钱......
  • @Barmar 我认为我不会愚蠢到连续输入错误密码或拼错 5 次。
  • 是哪个版本的?我曾经对 MySQL 5.7 感到惊讶。当我尝试使用GRANT ... IDENTIFIED BY '*KDFJIED...' 将用户复制到新服务器时。然后,令我惊讶的是,它构建了密码哈希的哈希值。

标签: mysql


【解决方案1】:

通过备份所有重要数据并重新安装操作系统解决了问题。事实证明,我有一些损坏的包影响了 mysql 身份验证的工作方式。修复损坏包的标准步骤没有用,所以我清除了 HDD 并重新开始。

MySQL 的安装没有任何问题,甚至被提示设置 root 密码。现在 MySQL 身份验证就像一个魅力。

【讨论】:

    【解决方案2】:

    试试这个:-它对我有用..!!

    1. 停止 MySQL 服务器进程。

    service mysql stop

    1. 使用 –skip-grant-tables 选项启动 MySQL (mysqld) 服务器/守护进程,这样它就不会提示输入密码。

    mysqld_safe --skip-grant-tables > /dev/null 2>&1 &

    1. 以 root 用户身份连接到 mysql 服务器。并设置新的 mysql root 帐户密码。

    mysql -u root -e "use mysql; update user set password=PASSWORD('NEW-PASSWORD') where User='root'; flush privileges;"

    1. 退出并重新启动 MySQL 服务器。

    service mysql restart

    注意:您可能需要在mysqld_safe 命令之后等待,然后才能运行后续的mysql 命令。

    现在运行:- mysql -u root -p

    【讨论】:

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