代码之家  ›  专栏  ›  技术社区  ›  John Santos

如何将GAE连接到Amazon RDS?

  •  5
  • John Santos  · 技术社区  · 9 年前

    我在Amazon RDS上有一个数据库实例,配置如下:

    Amazon RDS Instance

    我的专有网络安全组(入站和出站)的配置如下:

    VPC Security Group

    我的专有网络DNS解析和DNS主机名已激活。 我可以连接到这个实例并从MySQLWorkbench执行查询,而不会出现问题。 我正在使用persistence.xml在GAE Eclipse中配置它:

     <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的文章、博客、问题和答案,但我没有发现我做错了什么。

    请,任何建议,线索,提示将非常感谢一旦我试图修复它的最后一个星期。

    谢谢你们!

    1 回复  |  直到 9 年前
        1
  •  1
  •   John Santos    9 年前

    项目和配置都很好,我唯一没有做的是 激活我的项目的账单 .

    是的,您在GAE上创建帐户后立即激活您的账单帐户,但当您创建项目时,您需要 将项目帐单链接到您创建的帐单帐户。

    就这样。我希望它能帮助其他人。