尽管授予权限存在,MySQL仍然拒绝访问

3

我已创建用户并授予所有权限,但仍无法使用该用户连接到SQL。请问有人可以帮忙解决吗?

所跟进的步骤: mysql --user=root mysql;

CREATE USER 'db_user'@'%' IDENTIFIED BY 'password'; 
CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'password'; 
CREATE USER 'db_user'@'hostname' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'hostname' WITH GRANT OPTION;

当我尝试连接时:

mysql -u db_user -ppassword -h 'hostname' 

我收到了这个错误。
ERROR 1045 (28000): Access denied for user 'db_user'@'hostname' (using password: YES)

MariaDB [(none)]> show grants for db_user@'hostname';

GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'hostname' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' WITH GRANT OPTION 
1 row in set (0.00 sec)

它缺少什么导致无法连接?

2
使用密码:YES - 您的密码错误... - ʰᵈˑ
你已经创建了3个用户,虽然看起来你是在远程连接。这3个用户是否都有相同的密码? - ʰᵈˑ
所有这些账户都有相同的密码。 - PDP
'db_user'@'hostname' 中,hostname 是指你正在连接的地址的主机名吗? - ʰᵈˑ
没错,这就是本地主机名。 - PDP
显示剩余2条评论
1个回答

2

请再次确认主机名是否为本地主机的hostname

请尝试以下方法。

DROP USER 'db_user'@'localhost';
DROP USER 'db_user'@'%';
DROP USER 'db_user'@'hostname';
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'hostname' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' WITH GRANT OPTION;

mysql -u db_user -ppassword -h `hostname`

仅重新创建用户 - DBHash.com
主机名是本地主机的名称。 - PDP
你能粘贴一下 hostname 命令的输出结果以及你正在执行的确切命令吗? - DBHash.com
DBHash正在做的很好。它将服务器上的3行潜在问题清除干净。一个select user,host,password from mysql.user where user='db_user' order by 1,2也不是一个坏主意 :> - Drew
DBHash的建议起了作用。我可以知道问题出在哪里,为什么我们要删除用户并只授予权限吗?感谢大家的帮助。 - PDP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接