【问题标题】:jhipster RDS connection issuejhipster RDS 连接问题
【发布时间】:2016-01-01 13:54:55
【问题描述】:

我正在尝试将使用 JHipster 开发的应用程序部署到 AWS,但尝试执行此操作时出现错误。看起来我无法连接到数据库。 我创建了一个简单的 JSP 页面,它通过 jdbc 直接连接到数据库并且工作正常,所以在配置应用程序时似乎我做错了什么。

这是我当前的application.yml:

spring:
    profiles:
        active: prod
    datasource:
        dataSourceClassName: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
        url: jdbc:mysql://rds_url:3306/db?user=user&password=password
        databaseName: db
        serverName: rds_url
        username: user
        password: password
        cachePrepStmts: true
        prepStmtCacheSize: 250
        prepStmtCacheSqlLimit: 2048
        useServerPrepStmts: true

这就是我在日志中看到的:

Caused by: com.zaxxer.hikari.pool.PoolInitializationException: Exception during pool initialization
    at com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections(BaseHikariPool.java:542)
    at com.zaxxer.hikari.pool.BaseHikariPool.<init>(BaseHikariPool.java:171)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:60)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:48)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:80)
    at com.test.config.DatabaseConfiguration.dataSource(DatabaseConfiguration.java:83)
    at com.test.config.DatabaseConfiguration$$EnhancerBySpringCGLIB$$b2394f0e.CGLIB$dataSource$1(<generated>)
    at com.test.config.DatabaseConfiguration$$EnhancerBySpringCGLIB$$b2394f0e$$FastClassBySpringCGLIB$$e28d8821.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
    at com.test.config.DatabaseConfiguration$$EnhancerBySpringCGLIB$$b2394f0e.dataSource(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 137 more
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.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1038)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:338)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2237)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2270)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2069)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:422)
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:134)
    at com.mysql.jdbc.jdbc2.optional.MysqlDataSource.getConnection(MysqlDataSource.java:105)
    at com.zaxxer.hikari.pool.BaseHikariPool.addConnection(BaseHikariPool.java:438)
    at com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections(BaseHikariPool.java:540)
    ... 152 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:213)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:297)
    ... 169 more

这里是更详细的链接logs

任何帮助将不胜感激。

谢谢, 约德万。

【问题讨论】:

    标签: jhipster


    【解决方案1】:

    好的。我成功了。

    为了测试 yml 配置文件是否有问题,我决定直接在 DatabaseConfiguration.java 文件中硬编码数据库属性,它很简单! 当首页渲染出来的时候,我的惊喜是:开发模式! 我不知道这是怎么发生的,因为包应该是在激活生产配置文件的情况下生成的。这就是 here 中描述的生成包的方式:

    mvn -Pprod package
    

    但我忘记了我还需要在Tomcat中设置这个环境属性。 顺便说一句,由于这是 Tomcat 环境属性,因此需要重新启动您的 EBS 环境。

    最后但并非最不重要的一点是,确保您的 RDS 有一个安全组,允许从配置了 EBS 的 EC2 进行连接。

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 2021-01-31
      • 2016-09-14
      • 2019-10-28
      • 2019-10-14
      • 1970-01-01
      相关资源
      最近更新 更多