Fix: Spring Boot: SQLException: Access denied for user root@localhost (using password: YES)


Exception:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.14.jar:8.0.14]
 ...
 at org.code2care.jdbctemplate.eg.jdbctemplateeg.JdbctemplateegApplication.main(JdbctemplateegApplication.java:10) ~[classes/:na]

2023-04-13T16:03:45.104+05:30  INFO 73813 --- [main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-04-13T16:03:45.122+05:30 ERROR 73813 --- [main] o.s.boot.SpringApplication : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
...
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection
...
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.14.jar:8.0.14]
... 22 common frames omitted

Process finished with exit code 1

The access denied for user SQLException indicates that you have problems with the credentials that are being used to connect to the MySQL database.


Solutions/Fix

Spring Boot Project MySQL Configuration File Setup Example
  • Make sure you have set the correct username and password in the applications.properties file of your Spring Boot project.
    spring.datasource.username=root
    spring.datasource.password=strong-password
  • Make sure the Database Server is up and running.
    % systemctl status mysql
  • Check if there is no firewall configuration that is blocking access to port 3306 (default port, you might be using a different one)
  • It can be so that you can using MySQL locally and have not set the password at all, in such case you can remove the spring.datasource.password property and try.
-




Have Questions? Post them here!