Search
⚠️

Access denied for user (using password: YES)

대분류
기타
소분류
Trouble Shooting
설명
Docker 환경에 설치한 MySQL에 계정을 생성할때 도메인을 일반적인 localhost로 지정하면 에러가 발생
유형
Docker
부유형
MySQL
최종 편집 일시
2024/10/29 08:35
생성 일시
2024/07/18 01:20
13 more properties

문제

Access denied for user 'userid'@'172.18.0.1' (using password: YES)

문제 설명

Docker 환경에 설치한 MySQL에 계정을 생성할때 도메인을 일반적인 localhost로 지정하면 에러가 발생
Docker에 설치한 MySQL은 진짜 본인 컴퓨터에 설치한 것이 아니라 컨테이너 안에 설치된 것이므로 localhost로 지정하게 되면 오류가 뜨게 된다.

해결 방법

에러 메세지에 나오는 Docker 가상 IP로 지정을 해서 계정을 생성해야 함
1.
MySQL 콘솔 접속 (shell 환경일경우)
$ docker exec -it <CONTAINER_ID> mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 360 Server version: 8.0.21 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. 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.
YAML
복사
2.
계정 생성 및 권한 부여
CREATE USER 'userid'@'172.17.0.1' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'userid'@'172.17.0.1' WITH GRANT OPTION;
SQL
복사
3.
계정 적용
flush privileges;
SQL
복사
어디서든 실행되게 수정
CREATE user 'userid'@'%' identified by 'password';
SQL
복사