Forma de reproduzir:
Ao emitir o comando docker compose up --build
Resultado:
SQL State : 28000
Error Code : 1045
Message : Access denied for user 'root'@'172.20.0.3' (using password: YES)
Mais detalhes:
Caused by: org.flywaydb.core.internal.exception.FlywaySqlException: Unable to obtain connection from database: Access denied for user 'root'@'172.20.0.3' (using password: YES)
app-1 | -----------------------------------------------------------------------------------------------------------
app-1 | SQL State : 28000
app-1 | Error Code : 1045
app-1 | Message : Access denied for user 'root'@'172.20.0.3' (using password: YES)
app-1 |
app-1 | at org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:60) ~[flyway-core-10.10.0.jar:na]
app-1 | at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.<init>(JdbcConnectionFactory.java:72) ~[flyway-core-10.10.0.jar:na]
app-1 | at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:134) ~[flyway-core-10.10.0.jar:na]
app-1 | at org.flywaydb.core.Flyway.migrate(Flyway.java:147) ~[flyway-core-10.10.0.jar:na]
app-1 | at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66) ~[spring-boot-autoconfigure-3.3.1.jar:3.3.1]
app-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.10.jar:6.1.10]
app-1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.10.jar:6.1.10]
app-1 | ... 94 common frames omitted
app-1 | Caused by: java.sql.SQLException: Access denied for user 'root'@'172.20.0.3' (using password: YES)
app-1 | at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189) ~[mysql-connector-j-8.3.0.jar:8.3.0]
app-1 | at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) ~[HikariCP-5.1.0.jar:na]
app-1 | at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) ~[HikariCP-5.1.0.jar:na]
app-1 | at org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:48) ~[flyway-core-10.10.0.jar:na]
app-1 | ... 100 common frames omitted
app-1 |
app-1 exited with code 1
app.env
SPRING_PROFILES_ACTIVE=prod
SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/codechella_db
SPRING_DATASOURCE_USERNAME=root
SPRING_DATASOURCE_PASSWORD=pa55word
MAIL_HOST=smtp.gmail.com
MAIL_USER=testings.boot@gmail.com
MAIL_PASSWORD=khcraohk
APP_JWT_SECRET=jwt_secret
mysql.env
MYSQL_RANDOM_ROOT_PASSWORD=true
MYSQL_DATABASE=codechella_db
MYSQL_USER=root
MYSQL_PASSWORD=pa55word
Questões adicionais:
- Porquê a excepção
FlywaySqlException
uma vez que estou a trabalhar com o banco de dados MySQL? - Porquê preciso criar um User Root com uma senha aleatória (
MYSQL_RANDOM_ROOT_PASSWORD=true
) se eu já estou a criar explicitamente um user?