해결된 질문
작성
·
1.6K
2
spring:
jpa:
hibernate:
ddl-auto: create
show-sql: true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/stock_example
username: root
password: 1234
# JPA 쿼리가 어떻게 나가는지
logging:
level:
org:
hibernate:
SQL: DEBUG
type:
descriptor:
sql:
BasicBinder: TRACE
yml 설정은 위와 같이 하고 docker 이미지 확인시에 아래와 같이 작동하고 있습니다.
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03d3fae9019b mysql "docker-entrypoint.s…" 4 days ago Up 16 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
DB 조회 시에도 아래와 같이 나오는 데 혹시 제가 놓친 부분이 있을까요?
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| stock_example |
| sys |
+--------------------+
5 rows in set (0.01 sec)
답변 2
0
로컬에서 원래 접속되던거에서 먼저 확인을 하기 위해서
1. url: jdbc:mysql://localhost:3306/Mikor에서 일부러 테이블 명을 url: jdbc:mysql://localhost:3306/Miko 이라고 철자를 틀리게 하니 url이 없다고 나오는 걸로 봐서 url은 맞다고 확인을 했습니다.
2. 비밀번호를 일부러 틀리게 하니까 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 이 에러가 떴습니다.
근데 저는 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql
이렇게 생성하고 연결 비밀번호
url: jdbc:mysql://127.0.0.1:3306/stock_example
username: root
password: 1234
이렇게 맞게 적었는데 이 오류가 나서 이 부분을 여쭤보고 싶습니다.
혹시 Docker가
Client Version: 26.0.0 와 Server Version: 25.0.3
이렇게 버전이 차이가 나서 발생하는 오류 일 수도 있을까요?
그리고 죄송하지만 알아서 해결해보려고 했지만 mac에서 제가 어떻게 사용할 지 몰라서 이렇게 사용했는데 오류가 발생했습니다.
그래서 모든 image와 container를 삭제하고 새로 아래와 같이 받았을 때
igwangmin@igwangmin-ui-MacBookPro ~ % docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
c6a0976a2dbe: Pull complete
8dd4f8e415ca: Pull complete
6e01a6ece3af: Pull complete
6cfdeffd9140: Pull complete
73fed55ee93c: Pull complete
83404f4e4847: Pull complete
aad53405df78: Pull complete
d9c5f6f4cc6e: Pull complete
e04d803ff9c7: Pull complete
f06a309d43da: Pull complete
Digest: sha256:9de9d54fecee6253130e65154b930978b1fcc336bcc86dfd06e89b72a2588ebe
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
igwangmin@igwangmin-ui-MacBookPro ~ % docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql
f2bb499edbfa9704693383b9bb4ec01afe9b5b08b9583aedb2a3378189ac98a4
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.
이런 에러가 또 발생했습니다.
연결됐습니다.. 정말 감사드립니다.
마지막으로 처음 image 생성시에
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use. docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.
이 에러 구문이 나와 아래와 같은 방법 화살표로 표시 해 둔 부분으로 해결했는데 강의를 진행하기에 문제가 없을까요?
igwangmin@igwangmin-ui-MacBookPro ~ % docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
c6a0976a2dbe: Pull complete
8dd4f8e415ca: Pull complete
6e01a6ece3af: Pull complete
6cfdeffd9140: Pull complete
73fed55ee93c: Pull complete
83404f4e4847: Pull complete
aad53405df78: Pull complete
d9c5f6f4cc6e: Pull complete
e04d803ff9c7: Pull complete
f06a309d43da: Pull complete
Digest: sha256:9de9d54fecee6253130e65154b930978b1fcc336bcc86dfd06e89b72a2588ebe
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
igwangmin@igwangmin-ui-MacBookPro ~ % docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql
f2bb499edbfa9704693383b9bb4ec01afe9b5b08b9583aedb2a3378189ac98a4
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
f2bb499edbfa mysql "docker-entrypoint.s…" 9 minutes ago Created mysql 0B (virtual 638MB)
igwangmin@igwangmin-ui-MacBookPro ~ % sudo lsof -iTCP -sTCP:LISTEN -P | grep ':3306'
Password:
mysqld 535 _mysql 18u IPv6 0x965d118e85fb455f 0t0 TCP *:33060 (LISTEN)
mysqld 535 _mysql 20u IPv6 0x965d118e85fb5d5f 0t0 TCP *:3306 (LISTEN)
igwangmin@igwangmin-ui-MacBookPro ~ % sudo kill 535 <------------
igwangmin@igwangmin-ui-MacBookPro ~ % sudo lsof -iTCP -sTCP:LISTEN -P | grep ':3306' <------------
igwangmin@igwangmin-ui-MacBookPro ~ % docker rm mysql <------------
mysql
igwangmin@igwangmin-ui-MacBookPro ~ % docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
c6a0976a2dbe: Pull complete
8dd4f8e415ca: Pull complete
6e01a6ece3af: Pull complete
6cfdeffd9140: Pull complete
73fed55ee93c: Pull complete
83404f4e4847: Pull complete
aad53405df78: Pull complete
d9c5f6f4cc6e: Pull complete
e04d803ff9c7: Pull complete
f06a309d43da: Pull complete
Digest: sha256:9de9d54fecee6253130e65154b930978b1fcc336bcc86dfd06e89b72a2588ebe
Status: Downloaded newer image for mysql:latest
8550a9a141fdaee67b6f7c586a24085c98a9b99512cb7a8901f0c23cf9082536
igwangmin@igwangmin-ui-MacBookPro ~ %
igwangmin@igwangmin-ui-MacBookPro ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8550a9a141fd mysql "docker-entrypoint.s…" 22 seconds ago Up 20 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
igwangmin@igwangmin-ui-MacBookPro ~ % 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> create database stock_example;
Query OK, 1 row affected (0.01 sec)
mysql> use stock_example;
Database changed
0
안녕하세요, 인프런 AI 인턴입니다.
알함님의 질문과 관련하여 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
오류는 MySQL 접속 시 사용자 이름이나 비밀번호가 올바르지 않거나, 해당 사용자에게 접근 권한이 없을 때 발생합니다. 알함님의 경우, yml 설정과 Docker 이미지 상태, DB 조회 결과를 제공해주셨는데, 환경 설정이 올바른 것 처럼 보입니다.
이 오류의 빈번한 원인 중 하나는 MySQL에 설정된 사용자의 권한 문제일 수 있습니다. MySQL에 접속해서 사용자가 제대로 생성되었는지, 그리고 root
사용자에게 stock_example
데이터베이스에 대한 모든 권한이 제대로 부여되었는지 확인이 필요합니다.
이와 유사한 문제를 겪었던 다른 수강생의 경우와 관련하여, 해당 오류를 해결하기 위해 고려해볼 수 있는 기존 답변을 공유드립니다:
MySQL 사용자 권한을 재설정하거나, 접속 정보가 올바르게 설정되었는지 확인하는 과정이 필요할 수 있습니다. MySQL에서 root
사용자에 대한 권한 확인 및 재설정 방법은 다음과 같습니다:
-- 'root'@'localhost' 사용자의 권한 확인
SHOW GRANTS FOR 'root'@'localhost';
-- 필요한 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
늦게나마 답을 드려 죄송합니다. 아직 해결 되지 않은 상태입니다.