我知道有类似的问题,但我没有找到我正在寻找的内容。以下是发生的事情,有点奇怪:
[root@xxx xxx]# mysql -u profuser -ppwd -h 192.168.1.99
ERROR 1045 (28000): Access denied for user 'profuser'@'192.168.1.99' (using password: YES)
和192.168.1.99
是我自己的 IP。但是当我使用localhost
或时127.0.0.1
,就没问题了:
[root@xxx xxx]# mysql -u profuser -ppwd -h 127.0.0.1
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 68
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> bye
[root@xxx xxx]# mysql -u profuser -ppwd -h localhost
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 69
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
我发现这问题,但没有帮助:
mysql> select host from user where user='profuser';
+--------------+
| host |
+--------------+
| 127.0.0.1 |
| 192.168.1.99 |
| localhost |
+--------------+
我添加了我的 IP,正如另一个问题中所建议的那样。
答案1
密码哈希值是否与新用户/主机组合匹配?调整您的 select 语句:select host, password from user where user='profuser';
无论如何,你想实现什么?你正在添加标志-h 192.168.1.99
;本地连接时这不是必需的(正如你所发现的)。如果你想通过网络连接,那么你将需要一个用户规范,如'root'@'192.168.1.%'
或'root'@'%'
,以允许远程主机;如果你只是进行本地连接,那么你不需要-h
。
答案2
当使用类似查询手动添加主机时INSERT INTO mysql.user ...
,您必须发出FLUSH PRIVILEGES
命令来应用更改。