Java 使用FQDN标识的用户(而不是IP)远程连接到数据库

Java 使用FQDN标识的用户(而不是IP)远程连接到数据库,java,mysql,connection,ip,fqdn,Java,Mysql,Connection,Ip,Fqdn,我正在尝试远程连接MySQL数据库,从一台名为pc.domain.com的机器到一台名为remotehost.domain.com的服务器 在远程服务器上,我拥有具有适当权限的用户“user”@“pc.domain.com”,但当我尝试连接时,出现以下错误: Host '128.0.200.82' is not allowed to connect to this MySQL server 我不知道这种验证是服务器端还是客户端,尽管服务器端更有意义。如何强制它使用FQDN而不是IP地址来标识连

我正在尝试远程连接MySQL数据库,从一台名为pc.domain.com的机器到一台名为remotehost.domain.com的服务器

在远程服务器上,我拥有具有适当权限的用户“user”@“pc.domain.com”,但当我尝试连接时,出现以下错误:

Host '128.0.200.82' is not allowed to connect to this MySQL server

我不知道这种验证是服务器端还是客户端,尽管服务器端更有意义。如何强制它使用FQDN而不是IP地址来标识连接

结果是我的DNS上的反向查找出现了问题。

请详细说明您是如何解决此问题的。我在Linux主机上运行从windows客户端到mysql服务器的远程mysql连接时遇到问题。授予Windows IP权限可以正常工作,但不适用于Windows server的经常限定域名。因为我在AWS上有这两个服务器,所以IP不可靠,我需要将其移动到FQDN。请检查您的DNS服务器,除了通常的从FQDN指向mysql服务器IP地址的A记录外,它必须具有从mysql服务器IP地址指向FQDN的反向查找。由于您使用的是AWS,我从未使用过它,但我假设它的DNS系统必须通过一些自动过程建立IP->FQDN->IP关系,这可能是配置错误或失败的,最好在AWS文档中查找。不确定反向DNS查找。然而,在远程mysql服务器中,我们可以使用通配符“%”授予访问权限,这意味着来自任何主机的用户都可以访问它。它是否会对生产有任何安全顾虑。在AWS中,我们可以通过使用CidrIp指定安全组以允许特定主机来避免这种情况。创建由标识的用户@“%”;使用GRANT选项将。*上的所有权限授予@“%”;我不确定Cidrlp是如何工作的,因为我从来没有使用过它,这个问题最好在他们的文档中,或者由面临此类问题的人来回答。如何验证问题是与mysql服务器还是AWS有关?因为我可以连接到mysql服务器,如果我们允许访问mysql服务器内部的“客户端IP”。但是,当使用客户端fqdn授予访问权限时-使用GRANT选项将.*上的所有权限授予@client.example.com,客户端出错-[MySQL][ODBC 3.51驱动程序]主机不允许连接到此MySQL服务器1130 SqlDriverConnection
Host '128.0.200.82' is not allowed to connect to this MySQL server