[英]can't connect to mysql database in servlet
當我嘗試連接到我的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
那個...
是的,這不是類路徑問題,而是網絡問題。 由於某些原因,無法從客戶端計算機建立到給定主機的網絡連接。 是的,可能有很多事情。
絕對是網絡問題。 請注意,tcp連接不會被拒絕,而是會導致超時錯誤。 以我的經驗,該行為可能是由於TCP握手未正確完成(例如,防火牆丟棄了SYN數據包)引起的。
“嘗試將套接字連接到遠程地址和端口時發生錯誤的信號。通常,遠程拒絕連接(例如,沒有進程正在偵聽遠程地址/端口)”。 - 從Oracle文檔
查看您的連接字符串,確保正確鍵入了數據庫,用戶名和密碼。
另一個原因可能是數據庫服務器未啟動。
嘗試從運行應用程序的計算機上的任何數據庫客戶端(例如sqlyog)連接該數據庫。 如果連接也從客戶端失敗,則肯定是網絡問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.