안녕하세요~
오늘은 Spring Boot와 MariaDB 데이터베이스 연결 실패와 이름과 사용자 이름 차이에 대해 이야기해보려고 합니다.
Spring Boot는 개발자들 사이에서 매우 인기 있는 Java 웹 프레임워크 중 하나입니다. 그러나 때로는 MariaDB 데이터베이스와 연결하는 과정에서 문제가 발생할 수 있습니다. 또한 이름과 사용자 이름이 서로 다른 경우에도 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 이번 포스트에서는 Spring Boot와 MariaDB 데이터베이스 연결 실패 및 이름과 사용자 이름 차이에 대해 자세히 알아보겠습니다. 함께 시작해봅시다!
application.properties
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url='개인주소를 적어줍니다.'
spring.datasource.name=root
spring.datasource.password=root
저는 개인적으로 나스서버를 이용했기에 url은 생략하겠습니다.
아래의 사진처럼 error가 발생했습니다.
에러 메세지
2023-10-23 15:36:46.806 INFO 17097 --- [nio-9090-exec-7] com.zaxxer.hikari.HikariDataSource : root - Starting...
2023-10-23 15:36:47.037 WARN 17097 --- [nio-9090-exec-7] o.m.jdbc.message.server.ErrorPacket : Error: 1045-28000: Access denied for user 'chansung'@'172.26.0.1' (using password: YES)
2023-10-23 15:36:48.055 ERROR 17097 --- [nio-9090-exec-7] com.zaxxer.hikari.pool.HikariPool : root - Exception during pool initialization.
java.sql.SQLInvalidAuthorizationSpecException: (conn=121) Access denied for user 'chansung'@'172.26.0.1' (using password: YES)
at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:286) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:370) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.client.impl.ConnectionHelper.authenticationHandler(ConnectionHelper.java:312) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.client.impl.StandardClient.<init>(StandardClient.java:189) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.Driver.connect(Driver.java:70) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.Driver.connect(Driver.java:101) ~[mariadb-java-client-3.0.10.jar:na]
at org.mariadb.jdbc.Driver.connect(Driver.java:27) ~[mariadb-java-client-3.0.10.jar:na]
at net.sf.log4jdbc.sql.jdbcapi.DriverSpy.connect(DriverSpy.java:401) ~[log4jdbc-log4j2-jdbc4.1-1.16.jar:na]
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:121) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
저와같은 에러가 발생하신분이 계신다면 아래와 같이 수정해보시기 바랍니다.
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url='개인주소를 적어줍니다.'
spring.datasource.username=root <-- 이부분 name 에서 username 수정
spring.datasource.password=root
이렇게 수정했더니 접속이 잘 되더군요.
여기저기 검색을 해서 한번 정리를 해봤습니다.
에러설명
spring.datasource.username와 spring.datasource.name은 Spring Boot의 데이터베이스 연결 설정에서 사용되는 속성들입니다.
- spring.datasource.username: 이 속성은 데이터베이스에 연결할 때 사용하는 사용자 이름을 지정합니다. 예를 들어, MySQL 또는 MariaDB에서 root나 다른 사용자 이름을 이 속성에 지정할 수 있습니다.
- spring.datasource.name: 이 속성은 Spring Boot 애플리케이션에서 생성되는 DataSource bean의 이름을 설정합니다. 기본적으로, 이 이름은 'dataSource'입니다. 이 속성은 보통 데이터베이스 연결 정보를 제공하는 것이 아니라 Spring 내부에서 DataSource bean을 참조하는 데 사용됩니다.
따라서, 일반적인 상황에서 데이터베이스 접속 정보를 설정하려면 spring.datasource.username, spring.datasource.password, spring.datasource.url, 그리고 필요한 경우 spring.datasource.driverClassName 등의 속성들을 설정해야 합니다.
감사합니다.