服务器1 - 11.22.33.44
服务器2 - 99.88.77.66
我试图将MySQL从服务器1连接到服务器2,但是当我这样做时,它似乎将连接IP还原到它自己的服务器,其中用户的详细信息明显不正确,因此它失败了。
Connected to Server 1 (11.22.33.44)
$ mysql -u root -p -h 99.88.77.66
ERROR 1045 (28000): Access denied for user 'root'@'11.22.33.44' (using password: YES)
它并没有尝试连接到99.88.77.66。在两台服务器上都有一个防火墙规则,允许连接到两台服务器。
答案 0 :(得分:0)
您混淆了用于进行身份验证的目标主机。
"访问被拒绝用户xxx @ target-host"。
它不是关于连接,而是连接到哪个服务器(-name)进行身份验证。该技术通过在不同网络中分离用户来增加另一层安全性。
%
用作通配符和任何目标主机"。请参阅mysql / users表。
以下不是服务器,例如:
root@localhost
root@127.0.0.1
root@%
你的mysql / users表中需要root@11.22.33.44
或root@%
(不推荐!)才能连接。
答案 1 :(得分:0)
连接到mysql,通过此命令使用mysql数据库
use mysql;
检查用户
select * from user;
并查看用户root
是否有权访问%
Yon通过以下命令为app创建单独的用户:
create user user_name@'%' identified by 'password'
在数据库表上授予该用户的所有权限
grant all on database.* to 'user_name'@'%'
不要忘记刷新权限
flush privileges