2017-02-06 45 views
1

我第一次部署JHipster应用程序和生产配置文件,我希望Liquibase使用正确的表格/行来初始化数据库。生产Liquibase的JHipster

但是,当使用生产配置文件启动jhipster时,它只会导致一个异常,表示它无法连接到MySQL。

Caused by: java.sql.SQLException: Access denied for user 'myusername'@'localhost' (using password: NO) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) 
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    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:423) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) 
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:95) 
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:101) 
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:316) 
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:518) 
    ... 31 common frames omitted 

错误说,它无法连接用户和没有密码用于连接(与这个职位“名为myUsername”取代了它)。这是问题所在,密码应该用于连接,但不知何故,这不会从配置中获取。配置的相关部分:

spring: 
    datasource: 
     type: com.zaxxer.hikari.HikariDataSource 
     url: jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8&useSSL=false 
     name: 
     username: myusername 
     password: SuperSecretPassword 
     hikari: 
      data-source-properties: 
       cachePrepStmts: true 
       prepStmtCacheSize: 250 
       prepStmtCacheSqlLimit: 2048 
       useServerPrepStmts: true 
liquibase: 
    contexts: prod 
    password: SuperSecretPassword 

我已经添加了密码到liquibase.password财产自己但这并没有改变任何东西。在其他帖子中,解决方案是不为数据库用户设置密码,但这不是我的首选选项。 有谁知道如何得到这个工作?

回答

1

我发现了什么是错的。使用$ {spring.datasource.password}在liquibase.password字段中引用数据库密码,但这显然不起作用。