重置mysql root密码

时间:2017-12-29 09:24:45

标签: mysql

我知道这是更改或重置mysql root密码的最安全的方法。我这样做是因为安装程序中有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;然后输入:quit退出mysql。

此时一切顺利。然后我重启mysql服务器: sudo /etc/init.d/mysql start

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

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

2 个答案:

答案 0 :(得分:0)

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

安装MySQL没有任何打嗝,甚至提示设置root密码。现在,MySQL身份验证就像魅力一样。

答案 1 :(得分:0)

尝试一下:-它对我有用.. !!

  1. 停止MySQL服务器进程。
  

service mysql stop

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

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

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

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

相关问题