![SQLSTATE[HY000] [1045] 拒绝用户 'admin'@'localhost' 访问 (使用密码:是)](https://linux22.com/image/657156/SQLSTATE%5BHY000%5D%20%5B1045%5D%20%E6%8B%92%E7%BB%9D%E7%94%A8%E6%88%B7%20'admin'%40'localhost'%20%E8%AE%BF%E9%97%AE%20(%E4%BD%BF%E7%94%A8%E5%AF%86%E7%A0%81%EF%BC%9A%E6%98%AF)%20.png)
我已经在 phpmyadmin 中更改了 mysql 管理员用户的密码,现在我无法通过 ssh 访问我的 Plesk 面板和 mysql。它触发的错误是:
SQLSTATE[HY000] [1045] Access denied for user 'admin'@'localhost' (using password: YES) (Abstract.php:144)
如果我在 my.cnf 中输入 skip-grant-tables,我可以通过 ssh 访问 Plesk、phpmyadmin 和 mysql,但它不允许我更改密码。
我该如何恢复 Plesk 面板的正常访问?
谢谢
答案1
如果你使用 --skip-grant-tables 则无法使用 set Password = PASSWORD('string') 更改密码,但你可以这样做
UPDATE mysql.user set Password = <HASHED_STRING> where User = <ADMIN_USER> AND Host = 'localhost';
您可以使用以下命令创建散列字符串
select PASSWORD('test');
+-------------------------------------------+
| PASSWORD('test') |
+-------------------------------------------+
| *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
+-------------------------------------------+
1 row in set (0,00 sec)