我在Amazon RDS上有一个数据库实例,已经配置好如下:
Amazon RDS Instance
我的VPC安全组,入站和出站都配置如下:
VPC Security Group
我的VPC 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&password=******" />
<property name="cloudsql.url" value="jdbc:mysql://myworld.cy3caqn3kkz0.eu-west-1.rds.amazonaws.com:3306/myworld?user=myworld&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
我已经阅读了大量的帖子、博客、问题和答案,但我仍然不知道哪里做错了。
如果你有任何建议、线索或提示,将非常感激,因为我已经试图解决这个问题整整一周了。
谢谢大家!