2016-04-17 52 views
2

設置谷歌雲平臺應用程序與谷歌雲SQL和我的生活我無法獲得連接到數據庫當我運行代碼谷歌服務器。當連接到Google Cloud SQL(第二代)時,通信鏈接失敗僅從prod

根據這個實例:https://cloud.google.com/appengine/docs/java/cloud-sql/?csw=1 我已經得到了妥善建造非生產的網址,可以沒有問題的Cloud SQL執行這個網址

Class.forName("com.mysql.jdbc.Driver"); 
url = "jdbc:mysql://<ip-address>:3306/<database>?user=root"; 

連接起來,使一切都很好。這是我爲產品連接建立的網址。

Class.forName("com.mysql.jdbc.GoogleDriver"); 
url = "jdbc:google:mysql://<project-id>:<cloud sql instance name>/<database>?user=root"; 

我從儀表板和實例ID SQL實例列表拿到了項目ID,數據庫是一樣的非督促值,因爲非督促作品我相信這是正常的

Product and Instance ID locations I pulled them from

部署了這一切後,我得到的錯誤信息:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈路故障成功發送到服務器的最後一個數據包爲0毫秒前。驅動程序尚未收到來自服務器的任何數據包。

appengine-web.xml確實已將use-google-connector-j設置爲true,並且我看到對於第二代雲計算SQL,您無需在雲SQL中的授權列表中指定您的應用程序。

任何幫助,將不勝感激

回答

2

https://cloud.google.com/sql/docs/dev-access#gaev1-csqlv2-connect

你應該看看「實例連接名稱」在您的實例的「實例詳細信息」。對於第二代,它是「project-id:region-name:cloud-sql-instance-name」,而不是像第一代中的「project-id:cloud-sql-instance-name」。

+0

非常感謝!標記爲解決方案 – Matt

+0

最新文檔中的URL已更改。 「jdbc:google:mysql:// $ {INSTANCE_CONNECTION_NAME}/$ {database}?user = $ {user} & password = $ {password}」。請參閱https://cloud.google.com/appengine/docs/standard/java/cloud-sql/#setting-up – Ishaan

相關問題