2013-11-19 1 views
1

У меня есть проект, связанный с движком Google, с которым я пытаюсь подключиться к базе данных облака Google. Я загружаю свой проект в Google и через него пытаюсь подключиться к дБ.com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

мое соединение URL является следующим образом->

Class.forName("com.mysql.jdbc.GoogleDriver"); 
String password=""; 
    url = "jdbc:google:mysql://my-project-id:my-instance-name/dbname?user=root&password="+password+"useUnicode=true&characterEncoding=UTF-8"; 

    Connection conn = DriverManager.getConnection(url); 

это в момент, когда я пытаюсь получить соединение с URL, что я получаю исключение

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. 

Я тогда добавившие следующие строки в моей url-> & autoReconnect = истинные & failOverReadOnly = ложные & maxReconnects = 10

затем получил другое исключение ->

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 10 times. Giving up. 

Я пытался пинговать IP-адрес экземпляра БД и она отлично работает.

Должен ли я предоставить какие-либо явные разрешения в моем облачном sql-экземпляре, чтобы он мог подключиться?

Любые предложения приветствуются.

Странно то, что я могу подключиться к db с помощью eclipse, перейдя в проект-> google-> app engine-> usegoogle cloud sql instance-> configure.I использую то же имя пользователя (root) и password ("") здесь, как и в URL-адресе кода, но по какой-то причине он отказывается подключиться через код. Я также позволил

<use-google-connector-j>true</use-google-connector-j> 

тег в моем Appengine-web.xml

Я изменил пароль корня от «» до некоторого значения, и я могу подключиться через тузд клиента и я могу доступ к базе данных, но при предоставлении того же пароля в коде он отказывается подключиться.

Любые предложения будут оценены. Спасибо, Laura

+0

сервис db работает? –

+0

Я просмотрел итоговую вкладку под облаком sql (при щелчке по моему идентификатору экземпляра), и он говорит, что статус запущен. –

+0

под авторизированными IP-адресами: у меня есть «Нет», нужно ли указывать любые IP-адреса для подключения? Это может быть проблемой? –

ответ

0

Instance Id по умолчанию содержит проект Id. Поэтому явным образом не добавляю идентификатор проекта еще раз.

ID

Проект: sampleapp

Instance Id: sampleapp:instance1 (Это как Google Cloud SQL создает по умолчанию)

Connections строка:

Correct:

jdbc:google:mysql://sampleapp:instance1/dbname?user=root&password="+password+"useUnicode=true&characterEncoding=UTF-8"; 

Правильно

jdbc:google:mysql://sampleapp:sampleapp:instance1/dbname?user=root&password="+password+"useUnicode=true&characterEncoding=UTF-8"; 
+0

Спасибо большое за ответ! Я изменил URL-адрес, как это было предложено, и это сработало! , –

+0

Согласно http://stackoverflow.com/a/21716370/1317559, не следует использовать пароль. – Yster

+0

Нет проблем @LauraStone –

 Смежные вопросы

  • Нет связанных вопросов^_^