2
我使用的是谷歌的Cloud SQL使用Java-SQL連接器。我面臨的問題是與數據庫的連接意外地下降。當谷歌搜索時,我遇到了這個question,並嘗試了同一問題中提出的解決方案。連接中斷間歇
在控制檯中單擊項目,在左側點擊存儲> CLOUDSQL然後點擊您數據庫名稱。您將在頂部看到一個'編輯'按鈕。單擊向下滾動到激活策略,始終將其更改爲在然後單擊保存。
但我仍然面臨着同樣的問題。幸運的是,我一直在Google App Engine上保存日誌,並附加了連接到數據庫時發生的異常的快照。代碼
要點,我已經貼在下面用於建立連接到數據庫。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.StringTokenizer;
import java.util.logging.Logger;
import com.google.appengine.api.utils.SystemProperty;
import static com.google.appengine.api.utils.SystemProperty.environment;
import static com.google.appengine.api.utils.SystemProperty.Environment.Value.Development;
import static com.google.appengine.api.utils.SystemProperty.Environment.Value.Production;
Connection con=null;
SystemProperty.Environment.Value env = environment.value();
if(env == Production)
{
System.out.println("Inside Production Phase");
// Load the class that provides the new "jdbc:google:mysql://" prefix.
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://<my-project-id>:<cloud-sql-instance>/<database-name>?user=<user-name>&password=<database-password>&useUnicode=true&characterEncoding=UTF-8";
}//if
else if(env == Development)
{
System.out.println("Inside Development Phase");
// This will load the MySQL driver, each DB has its own driver
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://127.0.0.1:3306/<database-name>?user=root";
}//else if
con = DriverManager.getConnection(url);
是否有人面臨同樣的問題,請大家幫忙。
多久會出現這種情況?你能發佈一些日誌的實際文字嗎?它是否可以通過mysql客戶端連接,而不是通過代碼連接? – Nick
(1)。它經常發生 (2)。 'com.webinterface.ConnectToDB connectDB:連接沒有做出= com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈路故障 成功發送到服務器的最後一個數據包爲0毫秒前。司機還沒有從server.' 收到任何數據包,這是我所記錄的 (3)安裝.I've的phpmyadmin在谷歌應用程序引擎用於連接到雲SQL數據庫例外。它工作正常,通過代碼進行連接時發生問題。 –
這似乎喜歡的事,應該貼到[Cloud SQL的公開問題追蹤](https://code.google.com/p/googlecloudsql/issues/list)與到GitHub庫的鏈接可用於沿重現行爲並描述可以做些什麼來觸發它的發生。 – Nick