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이 변경을 인식하지 못하므로 실행시켜 주어야 함)
반응형