2

我有被配置在Amazon RDS數據庫實例:如何將GAE連接到Amazon RDS?

Amazon RDS Instance

我的VPC安全組,入站和出站配置如下圖所示:

VPC Security Group

我VPC DNS解析並且DNS主機名被激活。 我可以連接到這個實例並從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在Google的平臺中也提供了SQL,這可能會讓你的生活更輕鬆; 2.你絕對不應該允許所有主機的所有端口上的所有流量 - 哦,親愛的! 3. appengine-web.xml中的連接URL中的'&'會被轉義('&') - 當你把它變成'&'時會發生什麼? –

回答

0

我終於可以得到它的工作!這對我來說聽起來很愚蠢,但對於遇到同樣問題的人可能會有用。 一切都很好,項目和他們的配置,我沒有做的唯一的事情是激活我的PROJECT的開票。

是的,只要你在GAE上創建一個賬戶,你就激活了你的賬單賬戶,但是當你創建一個你需要的項目時將你的項目賬單鏈接到你創建的賬單賬戶上。

就是這樣。我希望它能幫助別人。