에러 메시지
could not connect to address=(host=localhost)(port=3306)(type=master) : (conn=2554198) Access denied for user 'master'@'localhost' (using password:YES) Current charset is utf-8. if password has been set using other charset, consider using option 'passwordCharacherEncoding'
※ 실제 에러메시지에는 address값이 서비스 운영DB의 주소로, 계정id는 실제 DB계정 id로 출력되었다.
개발서버 테스트 후 운영서버 배포 시 발생한 문제.
DB정보 확인을 위해 로컬에서 실행했을때는 에러없이 실행되었음.
에러 메시지에 언급된 DB계정에 권한이 없거나 해당 계정에 외부ip접속 권한이 없을때 발생하는 에러.
DB주소가 잘못되었을땐 로컬에서 프로젝트를 실행하여 실패 시 추측이 가능하지만,
위의 에러는 로컬실행에서는 문제가 없어 서버에 배포하기 전까지는 확인이 불가능하다.
개발서버의 DB계정에는 외부ip 접속권한이 있었고, 운영서버 DB계정에는 권한이 없어서 발생한 에러로 보인다.
DB연결 시 발생할 수 있는 에러로는
1) url정보 틀림 (url정보?serverTimeZone=Asia/Seoul&allowMultiQueries=true 등의 설정값이 빠진 경우 포함)
2) 계정정보 틀림
3) 계정권한 없음
4) 인코딩 설정
등이 있다.
계정정보가 틀렸을때도 똑같은 에러가 발생한다. (DB url이 틀렸을때는 다른 에러문구 출력.)
또는 에러 문구의 내용처럼 인코딩 셋팅이 달라서 발생한 문제일수도 있다.
나의 경우 로컬에서 실행 시 DB와의 연결이 정상인것으로 확인이 되었기에 외부ip접속 권한 문제라고 생각하였다.
계정정보가 틀렸을때의 오류는 참고링크 맨 아래의 5번 링크를 참고하자.
확인결과 해당DB계정에 운영서버ip를 허용해두지 않아서 발생한 오류였다.
로컬pc에 대한 ip만 허용되어 있어 로컬에서는 정상동작, 운영서버 배포 시 에러가 발생했던 것.
1. 스프링 MariaDB(Mysql) 외부 서버 연결 오류 해결하기 (원격 IP)
2. SQL연결 안 됨.java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=localhost)(port=3306)
3. MariaDB could not connect to address=(host=)(port=3306)(type=master) socket fail to connect
4. mySQL database가 없어 발생한 에러
5. [IntelliJ IDEA] Current charset is UTF-8. If password has been set