当我尝试连接到我的MySQL数据库时,我一直收到此错误:
exception
javax.servlet.ServletException: JDBC Problem:
root cause
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
root cause
java.net.ConnectException: Connection timed out: connect
这里有一些代码:
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection
("jdbc:mysql://mysql11.000webhost.com/database_name","user_name","password");
stmt = con.createStatement();
rs = stmt.executeQuery("INSERT into emailadresses('email') values ('"+email+"')");
} catch (ClassNotFoundException ex) {
Logger.getLogger(EmailServlet.class.getName()).log(Level.SEVERE, null, ex);
}catch(SQLException e){
throw new ServletException("JDBC Problem: ", e);
}
编辑:我的库中有mysql-connector-java jar文件
编辑:发现问题 我在我托管我的数据库的网站上寻找答案,并找到了:
JDBC/ODBC is not supported here
那个s * cks ......
答案 0 :(得分:1)
是的,它不是类路径问题,它是一个网络问题。由于某种原因,无法从客户端计算机建立与给定主机的网络连接。所以是的,可能会有很多事情。
答案 1 :(得分:1)
绝对是一个网络问题。请注意,您的tcp连接 NOT 被拒绝,而是发生超时错误。根据我的经验,这种行为可能是由TCP握手未能正确定型引起的(例如防火墙丢弃SYN数据包)。
答案 2 :(得分:1)
“表示尝试将套接字连接到远程地址和端口时发生错误。通常,远程拒绝连接(例如,没有进程正在侦听远程地址/端口)”。 - From Oracle Docs
查看您的连接字符串,确保正确输入数据库,用户名和密码。
另一个原因可能是您的数据库服务器未启动。
答案 3 :(得分:1)
尝试从运行应用程序的计算机上的任何数据库客户端(如sqlyog)连接该数据库。如果连接也从客户端失败,那么肯定是网络问题。