2017-02-06 44 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字段中引用數據庫密碼,但這顯然不起作用。