我正在尝试与远程主机上的MySQL服务器建立连接。两台机器都运行RH 7.5和MySQL 5.7。
我可以以root用户身份连接到服务器。我做到了,并用它来建立这样的辅助用户:
CREATE USER 'foo'@'client-ip-address' identified by 'my-password';
然后
GRANT ALL PRIVILEGES ON my-db.* to 'foo'@'client-ip-addres';
一切都很好。但是令我惊讶的是,当我尝试使用该新用户进行连接时,出现了一个我不习惯的错误:
$ mysql -u foo -h server-ip-address -pmy-password my-db
Access denied for user 'foo'@'some-hostname-not-an-ip.com' (using password: YES)
我知道客户端的IP地址(我在其中连接 ),这就是为什么我在服务器的“主机”列中使用该值设置用户的原因。但是客户端显然正在尝试使用不是IP地址的“主机”值建立连接。而是一个主机名,而不是一个IP地址。
此值从何而来? mysql在尝试连接到远程服务器时如何确定自己的主机?在过去,我只见过它使用机器自己的IP地址。