문제
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
복사