2

У меня есть экземпляр базы данных на Amazon RDS, настроенный:Как подключить GAE к Amazon RDS?

Amazon RDS Instance

группа

Мои VPC безопасности, входящих и исходящих настроены, как показано ниже:

VPC Security Group

Мой VPC DNS Разрешение и DNS Hostnames. Я могу подключиться к этому экземпляру и выполнять запросы без проблем из MySQLWorkbench. Я настроив его в моих GAE Eclipse, используя persistence.xml:

<persistence-unit name="myworld"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider > 

    <!--    MODELS   --> 
    ... 

    <properties> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://myworld.cy3caqn3kkz0.eu-west-1.rds.amazonaws.com:3306/myworld"/> 
     <property name="javax.persistence.jdbc.user" value="myworld"/> 
     <property name="javax.persistence.jdbc.password" value="******"/> 
     <property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.MySQLPlatform" /> 
    </properties> 

И мой appengine_web.xml:

<threadsafe>true</threadsafe> 

<system-properties> 
    <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
    <property name="ae-cloudsql.cloudsql-database-url" value="jdbc:mysql://myworld.cy3caqn3kkz0.eu-west-1.rds.amazonaws.com:3306/myworld?user=myworld&amp;password=******" /> 
    <property name="cloudsql.url" value="jdbc:mysql://myworld.cy3caqn3kkz0.eu-west-1.rds.amazonaws.com:3306/myworld?user=myworld&amp;password=******"/> 
</system-properties> 

Я могу подключиться и выполнять запросы, когда я начать мой проект GAE на местном уровне, и все работает нормально, но когда я его развертываю в сети, я получаю следующее исключение:

Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. 
Error Code: 0 

Я прочитал много сообщений, блогов, вопросов и ответов на stackoverflow, но я не понял, что я делаю неправильно.

Пожалуйста, любое предложение, подсказка, подсказка будет очень оценена, как только я попытаюсь исправить ее в течение последней целой недели.

Спасибо вам, ребята!

+0

Несколько соображений: 1. Знайте, что Google Cloud SQL также предоставляет SQL на платформе Google, что может сделать вашу жизнь проще; 2. Вы определенно не должны разрешать весь трафик на всех портах со всех хостов - о, дорогая !; 3. «&» в ваших URL-адресах подключения в appengine-web.xml экранируется ('&') - что происходит, когда вы делаете его просто '&'? –

ответ

0

Я, наконец, смог заставить его работать! Это звучит глупо для меня, но это может быть полезно для тех, кто может испытывать ту же проблему. Все было в порядке с проектами и их конфигурацией, единственное, что я не делал, это активировать выставление счета за мой PROJECT.

Да, вы активируете свою учетную запись для выставления счетов, как только вы создаете учетную запись на GAE, но когда вы создаете проект, вам нужно ССЫЛКА ВАШЕГО ПРОЕКТА СБЫВАТЬ С СЧЕТОМ ВЫПОЛНЕНИЯ.

Все. Надеюсь, это поможет кому-то другому.