【问题标题】:MySQL: host for root user changedMySQL:root 用户的主机已更改
【发布时间】:2014-12-01 11:08:37
【问题描述】:

有一个用户root@localhost,我通过mysql -u root -p 命令创建了root@127.0.0.1

`UPDATE mysql.user SET host=127.0.0.1 WHERE user=root;`

现在,我无法回到mysql -u root -p,即使我这样做:mysql -u root -h 127.0.0.1 -p

Access denied for user 'root'@'127.0.0.1' (using password: YES)

伙计们,把东西放回去的最好方法是什么?

【问题讨论】:

  • 这些命令不会改变任何东西。 准确地描述你做了什么。
  • 哦,对不起。完成,添加了一些细节。

标签: mysql root host


【解决方案1】:

tl;dr
停止服务器并使用--skip-grant-tables 选项重新启动它。撤消您的更改,再次停止服务器并在没有前面提到的选项的情况下启动它。


停止 mysqld 并使用 --skip-grant-tables 选项重新启动它。这使任何人都可以在没有密码和所有权限的情况下进行连接。由于这是不安全的,您可能希望将 --skip-grant-tables 与 --skip-networking 结合使用以防止远程客户端连接。

使用以下命令连接到 mysqld 服务器:

shell> mysql

在mysql客户端发出以下语句。将密码替换为您要使用的密码。

mysql> UPDATE mysql.user SET host = 'localhost'
    ->                   WHERE User='root';
mysql> FLUSH PRIVILEGES;

FLUSH 语句告诉服务器将授权表重新加载到内存中,以便它注意到密码更改。

【讨论】:

    猜你喜欢
    • 2010-10-06
    • 2015-05-26
    • 2014-01-17
    • 2017-01-01
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多