【问题标题】:Issue connecting to port 3306 for mysql applicationmysql 应用程序连接到端口 3306 的问题
【发布时间】:2010-08-13 19:55:24
【问题描述】:

我正在使用的 Java 应用程序应该将其结果数据写入 mysql 数据库,但每当我运行它时,我都会收到以下异常:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

原因如下:

Caused by: java.net.ConnectException: Connection refused

当然,我的下一步是测试 mysql 尝试连接的端口 (3306)。

$ telnet localhost 3306 
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

我的下一步是查看端口 3306 是否在监听。

$ netstat -an|grep 3306
tcp        0      0 69.164.214.18:3306      0.0.0.0:*               LISTEN

所以总而言之,端口正在侦听但不接受连接? 我必须承认,我对此知之甚少,但有人知道这里发生了什么吗?

【问题讨论】:

  • 也许您需要在防火墙例外列表中包含端口/应用程序...因此允许远程连接到该端口... :)
  • 啊,是的,抱歉,我忽略了我在 iptables 中添加了 3306

标签: mysql telnet


【解决方案1】:

清单:

  1. 防火墙规则:如果您的服务器拒绝/不允许 3306 端口,则无法连接。
  2. 绑定地址:如果你的绑定地址在MySQL配置中是127.0.0.1,你必须在/etc/mysql/my.cnf的[mysqld]中修改为0.0.0.0
  3. 重启服务:你必须运行命令'service mysql restart'

祝你好运。

【讨论】:

    【解决方案2】:

    我想通了。我需要从外部连接到 mysql,但我的程序试图在本地访问它。

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 2017-11-20
      • 2019-06-13
      • 1970-01-01
      • 2014-02-26
      • 1970-01-01
      • 2020-06-07
      • 2017-08-02
      • 1970-01-01
      相关资源
      最近更新 更多