작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
131
·
수정됨
0
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8550a9a141fd mysql "docker-entrypoint.s…" 15 hours ago Exited (0) 11 hours ago mysql
igwangmin@igwangmin-ui-MacBookPro ~ % docker container restart 8550a9a141fdaee67b6f7c586a24085c98a9b99512cb7a8901f0c23cf9082536
8550a9a141fdaee67b6f7c586a24085c98a9b99512cb7a8901f0c23cf9082536
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8550a9a141fd mysql "docker-entrypoint.s…" 15 hours ago Up 4 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
Docker restart를 한 후 Spring을 가동했을 때 아래와 같은 오류가 발생합니다.
2024-04-21 09:25:02.485 INFO 1378 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2024-04-21 09:25:03.641 ERROR 1378 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
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.29.jar:8.0.29]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-java-8.0.29.jar:8.0.29]
기존에 알려주신 방법인 아래와 같은 터미널 창에서 입력후 재실행하였으나 똑같은 오류가 발생해 혹시 다른 방법이 존재할까요
igwangmin@igwangmin-ui-MacBookPro Mikor % docker exec -it mysql bash
bash-4.4# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.3.0 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use stock_example;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| stock_example |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use stock_example;
Database changed
mysql>
Spring 버전은 아래와 같고
plugins {
id 'org.springframework.boot' version '2.7.1'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.shop'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
도커 버전은 아래와 같습니다.
igwangmin@igwangmin-ui-MacBookPro ~ % docker version
Client: Docker Engine - Community
Version: 26.0.0
API version: 1.44 (downgraded from 1.45)
Go version: go1.22.1
Git commit: 2ae903e86c
Built: Wed Mar 20 15:10:03 2024
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.28.0 (139021)
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: f417435
Built: Tue Feb 6 21:14:22 2024
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.6.28
GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 알함님께서 질문하신 “Docker restart시 spring boot 연동이 안됩니다.“와 관련하여 제공해드릴 수 있는 정보를 찾았습니다.
이 질문은 Docker를 재시작한 후 Spring Boot 애플리케이션에서 MySQL 데이터베이스에 접속할 때 발생하는 Access denied for user 'root'@'localhost'
오류와 관련 있습니다. 이 오류는 일반적으로 데이터베이스 사용자 인증 정보 오류로 인해 발생합니다. 오류 메시지에 나타난 것처럼, 제공한 패스워드로 root 사용자로 로그인을 시도했을 때 거부되었다는 것을 의미합니다.
해당 문제를 해결하기 위해 기존 답변 중 비슷한 상황을 다루고 있는 내용을 발견했습니다:
질문자님이 제공한 정보에 기반해서, 문제의 핵심은 Docker 컨테이너 내의 MySQL 데이터베이스 접속 시 사용한 인증 정보와 Spring Boot 애플리케이션의 데이터베이스 연결 설정이 서로 호환되지 않는 것으로 보입니다. 따라서, 다음 사항을 확인해 보시기 바랍니다:
- Spring Boot 애플리케이션의 데이터베이스 연결 설정(application.properties 또는 application.yml 파일)을 확인하여 데이터베이스 URL, 사용자 이름(root), 그리고 비밀번호가 Docker 컨테이너에서 설정한 MySQL 데이터베이스의 인증 정보와 일치하는지 확인하세요.
- MySQL 컨테이너가 정상적으로 실행되고 있고, 포트 매핑 설정이 애플리케이션의 데이터베이스 연결 설정과 일치하는지 확인하세요.
이와 관련된 추가 질문이나 다른 문제가 발생하면, 자세한 상황 설명과 함께 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.