Error/DB

DBeaver 를 사용하여 DOCKER로 실행시킨 MySQL 접속

cogito-new 2025. 4. 5. 11:40

 

1. terminal 에서 도커로 mysql 실행

docker run -d \
  --name new-mysql \
  -e MYSQL_ROOT_PASSWORD=newpassword \
  -p 3306:3306 \
  mysql:8.0

 

1-1. 기존 실행중인 mysql 에 접속하려는 경우

> 설정한 container name : mysql_container

docker exec -it mysql_container bash

 

 

2. 연결 시도 시 아래와 같은 연결 거부 알림

access denied for user 'root'@172.170.1 (using password : yes)

 

해당 메시지의 172.170.1.x 는 도커 컨테이너 네트워크 내부 IP임

DBeaver 연결 설정에서 localhost로 연결하더라도 docker의 네트워크로 접속하므로 @IP가 바뀌게 됨.

 


 해결 방법 : mysql 컨테이너에서 접속 권한 부여

1. 컨테이너 접속

docke exec -it mysql_containser bash

 

2. mysql 접속

mysql -u root -p

 

3. 권한 부여

CREATE USER 'root'@'172.170.1.%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.170.1.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

> 새로운 사용자를 생성하고 (Docker 네트워크 내부 IP로 연결가능한)

> 해당 사용자에게 ALL PRIVILEGES 로 모든 권한을 부여
> FLUSH PRIVILEGES : 권한 및 정보를 메모리에 반영

 

(FLUSH PRIVILEGES : 정식 명령어를 사용했으므로 실행하지 않아도 됨
내부 시스템 테이블을 직접 수정했을 경우 mysql이 변경을 인식하지 못하므로 실행시켜 주어야 함)

 

반응형