java.net.ConnectException
关于这个话题,我已经看到了一些线索,但我仍然不知道出了什么问题。代码如下:java.net.ConnectException,java,mysql,Java,Mysql,关于这个话题,我已经看到了一些线索,但我仍然不知道出了什么问题。代码如下: import java.sql.*; public class SQL { public static void main(String[] args) { Connection conn = null; String url = "jdbc:mysql://mysql1.oyo.co.il:3306/"; String dbName = "sdarot
import java.sql.*;
public class SQL
{
public static void main(String[] args)
{
Connection conn = null;
String url = "jdbc:mysql://mysql1.oyo.co.il:3306/";
String dbName = "sdarot2_winner";
String driver = "com.mysql.jdbc.Driver";
String userName = "";
String password = "";
String table = "LEADER_CAM_PRODUCTS";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
conn.close();
System.out.println("Disconnected from database");
}catch (Exception e) {
System.out.println(e);
}
}
}
下面是我得到的错误:
com.mysql.jdbc.CommunicationsException:由于基础>>异常导致的通信链路故障:
**开始嵌套异常**
java.net.ConnectException
消息:连接超时:连接
堆栈跟踪:
java.net.ConnectException:连接超时:连接
位于java.net.PlainSocketImpl.socketConnect(本机方法)
位于java.net.PlainSocketImpl.doConnect(未知源)
位于java.net.PlainSocketImpl.connectToAddress(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket。(未知源)
位于java.net.Socket。(未知源)
位于com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
在com.mysql.jdbc.MysqlIO上(MysqlIO.java:271)
在com.mysql.jdbc.Connection.createNewIO上(Connection.java:2744)
位于com.mysql.jdbc.Connection(Connection.java:1553)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于SQL.main(SQL.java:17)
**结束嵌套异常**
发送到服务器的最后一个数据包是1毫秒前
以下是我发现的一些东西:
谢谢。作为实验,尝试使用系统的telnet命令连接到mysql1.oyo.co.il上的3306端口。或其他打开原始TCP/IP连接的实用程序(例如
nc
或netcat
)。根据您的操作系统/发行版,您可能需要找到并安装合适的命令来帮助您解决此问题。观察发生了什么
重新诊断: a) 这是正确的 如果你这么说 b) 自从我有了一个正在使用该数据库的网站后,它就没有停止运行 充其量,您已经证明主机正在工作。端口80上的web服务和端口3306上的MySQL服务是不同的服务。(事实上,
mysql1.oyo.co.il
可能正在使用巧妙的数据包路由技巧,以便将不同端口上的流量以传输方式路由到不同的主机或虚拟主机。)
c) 我该怎么查呢
尝试更改/增加超时
我不认为这是个问题,因为正如我所说,我在这个数据库上有一个正在运行的网站
我猜这不是超时问题。。。但正如我上面所说的,你有一个网站的事实并不能说明MySQL服务是否正在运行
d) 现在是因为我上面提到的同样的原因
您只演示了可以到达端口80。。。见上文
e) samem as d
您只演示了可以到达端口80。。。见上文
基于上述情况,有理由认为:
- 您有本地防火墙问题
- 该端口上的MySQL服务当前未运行
- 服务端的网络路由因该端口上的流量而中断
- MySQL服务已永久关闭,或者
- 该服务的防火墙已配置为不接受来自随机(或特定)位置(包括您的)的网络连接
我猜“他们”已经撤回了服务。。。你不应该再使用它了。(提供公共MySQL数据库服务让我觉得很奇怪……而且从安全和管理的角度来看也是有问题的。)作为一个实验,尝试使用系统的telnet命令连接mysql1.oyo.co.il上的3306端口。或其他打开原始TCP/IP连接的实用程序(例如
nc
或netcat
)。根据您的操作系统/发行版,您可能需要找到并安装合适的命令来帮助您解决此问题。观察发生了什么
重新诊断: a) 这是正确的 如果你这么说 b) 自从我有了一个正在使用该数据库的网站后,它就没有停止运行 充其量,您已经证明主机正在工作。端口80上的web服务和端口3306上的MySQL服务是不同的服务。(事实上,
mysql1.oyo.co.il
可能正在使用巧妙的数据包路由技巧,以便将不同端口上的流量以传输方式路由到不同的主机或虚拟主机。)
c) 我该怎么查呢
尝试更改/增加超时
我不认为这是个问题,因为正如我所说,我在这个数据库上有一个正在运行的网站
我猜这不是超时问题。。。但正如我上面所说的,事实上你有一张网