有一位用户root@localhost
,我通过root@127.0.0.1
命令将其mysql -u root -p
:
`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)
伙计们,放回东西的最佳方式是什么?
答案 0 :(得分:0)
<强> TL;博士强>
停止服务器并使用--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语句告诉服务器将授权表重新加载到内存中,以便它注意到密码更改。