我的數據庫在過去有過更多的問題:它不能總是獲得連接。數據庫運行在網站上(虛擬主機),我嘗試從我自己的PC上訪問它。這裏出了問題,如果我從localhost訪問它到localhost,那麼它工作正常。無法連接到MySql數據庫
錯誤,那是我在Java中獲得:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
我不知道爲什麼,我使用的是類似的結構如初,即如下:
public class SQL {
private final static String USERNAME = "";
private final static String PASSWORD = "";
private final static String URL = "jdbc:mysql://www.fvheeswijk.nl:3306/p28004_bf4";
private static Connection cachedConnection;
private static void createConnection() {
cachedConnection = null;
Properties connectionProperties = new Properties();
connectionProperties.put("user", USERNAME);
connectionProperties.put("password", PASSWORD);
try {
cachedConnection = (Connection) DriverManager.getConnection(URL, connectionProperties);
} catch (SQLException ex) {
Logger.getLogger(SQL.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static Connection getConnection() {
if (cachedConnection == null) {
createConnection();
}
return cachedConnection;
}
}
的數據被削除,當然。
然後我試着ping我的網站,都很好。
後來我試圖平www.fvheeswijk.nl:3306
,數據庫,但Windows CMD無法找到它。然後我試着通過瀏覽器訪問它(這是否有意義?),但是我收到了一些信息:「無序接收的數據包」。我已經(之前的方式)將我的PC(路由器/網絡)主機名添加到數據庫允許的主機列表中。
任何線索或建議是什麼問題?
編輯:現在我得到這個,或許可以解釋的東西... java.sql.SQLException: null, message from server: "Host '541DB0AA.cm-5-6c.dynamic.ziggo.nl' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
好的,我會毫不猶豫地看看它,因爲總會有*一些*問題,雖然依賴於應用程序他們可能會更嚴重。我沒有使用任何容器環境,所以我希望有連接池的簡單實現。我知道我正在使用一個已經關閉的連接,但是我無法對這個連接做任何事情,也不能手動關閉它,因此我感到困惑。 – skiwi
@skiwi在我的答案的更多信息部分的最後一個鏈接中,有一些數據庫連接池庫可以在您的應用程序中使用。 –
我將使用apache commons dbcp,但是我已經過去了幾分鐘,但已經啓用了在不使用容器環境的情況下爲DBCP找到全面的教程。你碰巧知道嗎? – skiwi