MySQL:用户'用户'@'IP_ADDRESS'拒绝访问 - 某些主机允许的远程访问对其他主机失败

时间:2017-05-16 20:01:35

标签: mysql

背景 我能够从一些子网访问一个mysql实例,但不能访问其他子网。至少这就是它的样子。 网络 10.0.21.xx 上的计算机可以连接到MySQL实例。但是从 10.0.7.xx ,我得到“使用密码的用户拒绝访问”。有趣的是,MySQL安装在与它不会对用户进行身份验证的计算机相同的子网(10.0.7.xx)上。

这是我发出的命令。

 mysql -u user -h 10.0.7.21 -p

我得到的错误是

ERROR 1045 (28000): Access denied for user 'user'@'10.0.7.30' (using password: YES)

我已经检查了 /etc/mysql/my.cnf 文件,并确保mysqld从所有IP地址进行侦听。我还检查了授权权限,以确保它不依赖于特定的IP地址。

如果有人能给我更多的见解,我会很感激。如果您需要我添加额外信息,请告诉我。

感谢阅读。

2 个答案:

答案 0 :(得分:1)

事实证明这是一个DNS问题。让我走这条路的是MySQL Documenation

  

如果您在尝试连接时指定主机名,但收到主机名未显示是IP地址的错误消息,则表示尝试将客户端主机的IP地址解析为名称时,MySQL服务器出错:

它提供的解决方案之一是刷新DNS主机缓存;在我的情况下,我没有这张桌子。

以下是文档中的建议修补程序:

  

一些永久的解决方案是:

     
      
  • 确定DNS服务器的问题并进行修复。

  •   
  • 在MySQL授权表中指定IP地址而不是主机名。

  •   
  • 在Unix或/的/ etc / hosts中输入客户端计算机名称的条目   Windows上的\ windows \ hosts。

  •   
  • 使用--skip-name-resolve选项启动mysqld。

  •   
  • 使用--skip-host-cache选项启动mysqld。

  •   

在我的情况下,我将本地DNS服务器的IP地址添加到客户端的/etc/resolv.cnf文件中,然后重新启动网络服务(服务网络重启)。

答案 1 :(得分:0)

从错误消息中获取主机名并将其添加到远程 sql 主机访问列表中。

如果您的错误消息是 Access denied for user 'user'@'10.0.7.30' (using password: YES),则主机名是 10.0.7.30

将它添加到您的远程主机访问列表,您应该已连接。