2017-02-06 9 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

나는 무엇이 잘못되었는지 알아 냈습니다. liquibase.password 필드에서 $ {spring.datasource.password}를 사용하여 데이터베이스 비밀번호를 참조했지만 분명히 작동하지 않습니다.