728x90
발단
테스트를 위해 생성한 프로젝트에서 DB 연결이 정상적으로 이루어지지 않았다. Client(HeidSQL, DataGrip)으로는 연결이 되었지만 Spring 에서 연결이 되지 않았기에
환경
- Spring Boot 3.2.5
- Mysql 8.0.36
설명
다른 블로그를 찾아보니 `Access denied for user ...` 오류에 대한 해결방법은 3가지로 나뉜다. 하지만 본인은 아래 3가지 방법중 어떤 걸로도 해결되지 않았다.
1. Bitnami WAMP 로 인해 Listening 중인 서버가 동시에 떠있는 경우가 있는 듯 하다.
- 보통 강의에서 사용되는 오픈소스 솔루션으로 PHP, Mysql 등의 프로그램을 쉽게 설치하는 방법인듯 하다.
2. 비밀번호 오류
- Mysql 재설치를 통해 root 에 대한 비밀번호를 재설정 및 DDL(Alter)을 통해 비밀번호 수정을 하였으나 해결안됨
3. 권한 오류
- root 권한으로 접근하여 권한이 문제 있을리 없겠지만, 혹시몰라 모든 권한을 주었으나 해결안됨
위 3개로 해결되신 분 이라면 아래 해결방법 이런 사람도 있구나 하시면 됩니다..
문제확인
문득 Mysql 의 문제가 아니라 Spring property 에 문제가 있을 수 있지 않을까 싶었습니다.
코드(application.yml)
spring:
datasource:
url: jdbc:mysql://localhost:3306/{dbname}
username: root
password: 0000
driver-class-name: com.mysql.cj.jdbc.Driver
# 만약 위 설정을 읽자마자 문제를 인지하셨다면 당신은 개발 천재?
해결방법
- root 계정 비밀번호는 `0000` 으로 숫자로만 이루어져 있습니다.
- 숫자로만 이루어져 있기에 DB 접근 시도시 정보를 읽어들이는 과정에서 숫자로 인지 하지 않을까 생각했습니다.
- 아래와 같이 string 으로 인지할 수 있게 single quote 를 붙여 코드를 수정하였고 오류를 해결할 수 있었습니다.
...
password: '0000'
...
728x90