4
respostas

Erro ao conectar no mysql

SQL State : 28000 Error Code : 1045 Message : Access denied for user 'root '@'localhost' (using password: YES)

spring.datasource.url=jdbc:mysql://localhost/vollmed_api
spring.datasource.username=root 
spring.datasource.password=root

Eu consigo me conectar pelo terminal

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 8     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

Porém quando rodo o projeto ele quebra e fica na mensagem de erro

SQL State  : 28000
Error Code : 1045
Message    : Access denied for user 'root '@'localhost' (using password: YES)
4 respostas

Oi!

Quando você loga no terminal, coloca qual senha?

Pelo mensagem de erro apresentada o problema é na senha do seu mysql, que não deve ser root.

Sim eu tenho outra senha, porém quando eu logo pelo terminal dá certo,

pedroadmin@pedro ~ $ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.33-0ubuntu0.22.04.4 (Ubuntu)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Quando eu altero o campo 'root' para a mesma senha que uso no termnial do intelij, ele quebra e me retorna essa mensagem. spring.datasource.password=root

SQL State  : 28000
Error Code : 1045
Message    : Access denied for user 'root '@'localhost' (using password: YES)

    at org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:60) ~[flyway-core-9.16.3.jar:na]
    at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.<init>(JdbcConnectionFactory.java:74) ~[flyway-core-9.16.3.jar:na]
    at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:140) ~[flyway-core-9.16.3.jar:na]
    at org.flywaydb.core.Flyway.migrate(Flyway.java:140) ~[flyway-core-9.16.3.jar:na]
    at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66) ~[spring-boot-autoconfigure-3.1.1.jar:3.1.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1816) ~[spring-beans-6.0.10.jar:6.0.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[spring-beans-6.0.10.jar:6.0.10]
    ... 23 common frames omitted

Boa tarde! Dependendo do sistema operacional tem soluções diferentes, esse erro é muito genérico, vale uma pesquisa no google e alguns tentativas.

Caramba, muito bizarro isso, não faz sentido :D

Uma possibilidade que já vi acontecer é ter um espaço em branco no username ou password no application.properties:

spring.datasource.username=root 
spring.datasource.password=root 

Um espaço em branco após a palavra root, que vai ser levado em consideração. Verifica se é o seu caso.

Outra possibilidade poderia ser o mysql ter duas instancias rodando em portas distintas no seu computador e o Spring Boot está tentando se conectar na da porta padrão (3306) cujo username/password pode ser outro. Mas acredito que não é o seu caso.