亚马逊 MySQL RDS 和 Hibernalte
Amazon MySQL RDS and Hibernalte
我曾经有一个服务器,上面有 MySQL。我正在成长,刚刚 MySQL 搬到了 Amazon rds。我的 war 文件正在使用休眠。我可以将 mySqlWorkBench 连接到云数据库,没有问题,但是一旦我将 war 文件上传到 tomcat 并用我的 API 我得到 500NullPioinnter 异常...
它说
Caused by: 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.
我的休眠文件有这个:
<property name="hibernate.c3p0.validate">true</property>
<property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">600</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.preferredTestQuery">SELECT 1;</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">myPassword</property>
<property name="hibernate.connection.url">jdbc:mysql://mydb.cpenxxkl0fwa.us-west-2.rds.amazonaws.com:3306</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">mydb</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
您是否尝试重新启动 sql 服务器?
另请记住,您的亚马逊 SQL 服务器托管在 LINUX 环境中,并且在 MySQL 中所有 table 值都是关键敏感的!我会先检查 table 个名字。祝你好运
您需要通过安全组在 Amazon RDS 和 EC2/Elasticbeanstalk 环境中设置防火墙规则。
RDS 组必须具有以 EC2/EBS 环境安全组作为源的入站规则
我建议使用系统 属性 "JDBC_CONNECTION_STRING" 连接到您的 RDS 实例,而不是直接将其放在 persistence.xml 上,但这完全取决于您。
此外,我认为您不能以 "root" 用户身份连接。您还应该检查那里的 username/password 设置。
我曾经有一个服务器,上面有 MySQL。我正在成长,刚刚 MySQL 搬到了 Amazon rds。我的 war 文件正在使用休眠。我可以将 mySqlWorkBench 连接到云数据库,没有问题,但是一旦我将 war 文件上传到 tomcat 并用我的 API 我得到 500NullPioinnter 异常... 它说
Caused by: 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.
我的休眠文件有这个:
<property name="hibernate.c3p0.validate">true</property>
<property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">600</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.preferredTestQuery">SELECT 1;</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">myPassword</property>
<property name="hibernate.connection.url">jdbc:mysql://mydb.cpenxxkl0fwa.us-west-2.rds.amazonaws.com:3306</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">mydb</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
您是否尝试重新启动 sql 服务器?
另请记住,您的亚马逊 SQL 服务器托管在 LINUX 环境中,并且在 MySQL 中所有 table 值都是关键敏感的!我会先检查 table 个名字。祝你好运
您需要通过安全组在 Amazon RDS 和 EC2/Elasticbeanstalk 环境中设置防火墙规则。
RDS 组必须具有以 EC2/EBS 环境安全组作为源的入站规则
我建议使用系统 属性 "JDBC_CONNECTION_STRING" 连接到您的 RDS 实例,而不是直接将其放在 persistence.xml 上,但这完全取决于您。
此外,我认为您不能以 "root" 用户身份连接。您还应该检查那里的 username/password 设置。