java.sql.SQLException: Access denied for user 'nobody'@'172.17.0.1' (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-j-8.0.31.jar!/:8.0.31]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.31.jar!/:8.0.31]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-j-8.0.31.jar!/:8.0.31]
docker run -d -p 8081:8080 --name app -e SPRING_DATASOURCE_URL=jdbc:mysql://ec2-15-164-2-75.ap-northeast-2.compute.amazonaws.com:3306/db -e SPRING_DATASOURCE_PASSWORD=password -e JWT_SECRET_TOKEN=token registry.gitlab.com/username/projectname
위 명령어로 docker에 registry 파일을 데몬으로 띄웠는데java.sql.SQLException: Access denied for user 'nobody'@'172.17.0.1' (using password: YES)
에러가 나왔다.
에러를 검색해보니 MySQL에서 access 권한을 사용자에게 주지 않아서 생기는 오류라고 한다.
그래서 여러 블로그에 나오는 MySQL 권한 설정 변경을 설정했는데 작동하지 않았다.
결국 문제는 도커에서 실행할 때 환경 변수 설정에-e SPRING_DATASOURCE_NAME
을 설정하지 않아서 그랬다.
docker run -d -p 8081:8080 --name app -e SPRING_DATASOURCE_URL=jdbc:mysql://ec2-15-164-2-75.ap-northeast-2.compute.amazonaws.com:3306/db -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=password -e JWT_SECRET_TOKEN=token registry.gitlab.com/username/project
위 명령어로 실행하니 잘 올라갔다.
참고한 블로그
https://happymemoryies.tistory.com/69
Docker 환경에서 MySQL 로그인시 Access denied for user ‘’@’172.17.0.1'(using password: YES) 에러가 발생 할때
Docker 환경에 설치한 MySQL에 계정을 생성할때 도메인을 일반적인 localhost로 지정하면 에러가 발생 합니다. 그렇기 때문에 에러 메세지에 나오는 Docker 가상 IP로 지정을 해서 계정을 생성해야 합니
happymemoryies.tistory.com
https://velog.io/@1984/MySQL%EC%9D%98-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-java.sql.SQLException
'SpringBoot > Error' 카테고리의 다른 글
사업자 등록정보 확인 API 테스트 중 발생 오류들 (0) | 2023.01.19 |
---|---|
JpaAuditing - extends BaseEntity 적용 안됨 (0) | 2022.12.22 |
application.yml 없을 시 도커 컨테이너 내려감 (0) | 2022.12.21 |
Inferred type 'S' for type parameter 'S' is not within its bound; should extend (1) | 2022.12.20 |