Ich stelle zum ersten Mal eine JHipster App mit dem Produktionsprofil bereit und möchte, dass Liquibase die Datenbank mit den richtigen Tabellen/Zeilen initialisiert.JHipster mit Liquibase in Produktion
Wenn jedoch jhipster mit dem Produktionsprofil gestartet wird, führt dies nur zu einer Ausnahme, die besagt, dass es keine Verbindung zu MySQL herstellen kann.
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
Der Fehler sagt es nicht in der Lage für Benutzer (ersetzt es mit ‚myusername‘ für diesen Beitrag) zu verbinden und dass kein Passwort für die Verbindung verwendet wird. Hier ist das Problem, ein Passwort sollte für die Verbindung verwendet werden, aber irgendwie wird dies nicht von der Konfiguration übernommen. Die relevanten Teile der Konfiguration:
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
ich das Passwort an die liquibase.password Eigenschaft selbst hinzugefügt haben, aber das hat nichts ändern. In anderen Posts war die Lösung, kein Passwort für den Datenbankbenutzer zu setzen, aber das ist nicht meine bevorzugte Option. Weiß jemand, wie man das funktioniert?