2017-02-06 11 views
1

Я развертываю приложение JHipster с профилем производства в первый раз, и я хочу, чтобы Liquibase инициализировала базу данных правильными таблицами/строками.JHipster с Liquibase в производстве

Однако при запуске 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, но, похоже, это не работает.