jdbc mysql通信链接失败到远程数据库

时间:2014-07-19 01:13:27

标签: java mysql database jdbc

我正在尝试使用mysql程序中的jdbc连接到java数据库。我使用RHEL 6机器连接到mysql数据库。我在这台机器上打开了端口3306,如果我这样做,mysql -u root -p mysql数据库连接。

如果我这样做,mysql -h servername.edu -u root -p mysql数据库连接。

从我的java程序,

String url = "jdbc:mysql://localhost:3306/";

作品。

现在,如果我将localhost更改为servername,它将不起作用。

String url = "jdbc:mysql://server.com:3306/";

我收到错误,

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure to remote databse

在发布问题之前,我对来自here的此例外进行了一些研究。

我已正确设置my.cnf文件,但我没有在该文件中看到问题。我在这里错过了什么?服务器的正常ping也可以正常工作。

1 个答案:

答案 0 :(得分:0)

  

CommunicationsException:通讯链接失败

您可以看到此answer,其中还包含有关您的问题的良好教程:

  

如果出现SQLException:连接被拒绝或连接超时   或MySQL特定的CommunicationsException:通信链接   失败,那就意味着数据库根本无法访问。这个可以   有以下一个或多个原因:

     
      
  1. JDBC URL中的IP地址或主机名错误。
  2.   
  3. 本地DNS服务器无法识别JDBC URL中的主机名。
  4.   
  5. JDBC URL中缺少或错误端口号。
  6.   
  7. 数据库服务器已关闭。
  8.   
  9. 数据库服务器不接受TCP / IP连接。
  10.   
  11. 数据库服务器已用完连接。
  12.   
  13. Java和DB之间的某些东西阻止了连接,例如防火墙或代理。
  14.         

    要解决其中一个问题,请遵循以下建议:

         
        
    1. 使用ping验证并测试它们。
    2.   
    3. 刷新DNS或在JDBC URL中使用IP地址。
    4.   
    5. 根据MySQL DB的my.cnf进行验证。
    6.   
    7. 启动数据库。
    8.   
    9. 验证mysqld是否在没有--skip-networking选项的情况下启动。
    10.   
    11. 重新启动数据库并相应地修改代码,以便最终关闭连接。
    12.   
    13. 禁用防火墙和/或配置防火墙/代理以允许/转发端口
    14.   
相关问题