DevOps
Docker - mysql8 설치 및 DBTool(Dbeaver) 접속 ( 오류 access denied for user 및 casching_sha2_password 해결 )
맑은안개
2021. 8. 15. 14:38
Docker에 mysql 8.x 설치과정을 소개한다. 영속적인 데이터를 유지하기 위해서 volume을 사용한다.
실행환경
- os: windows 10
docker volume create 명령으로 volume을 생성할 수 있다.
docker volume create mysql
docker volume create mysql_config
생성된 volume은 docker volume ls로 확인할 수 있다.
docker volume ls
위에서 생성한 volume, mysql은 mysql의 물리 data파일이 존재하는 /var/lib/mysql에 매핑한다.
mysql_config은 mysql의 config file이 위치한 /etc/mysql에 매핑한다.
docker run --rm -d -v mysql:/var/lib/mysql -v mysql_confg:/etc/mysql -p 13306:3306 --network mysqlnet --name mysqldb -e MYSQL_ROOT_PASSWORD=1234 mysql
( 기존 3306포트에 충돌이 있어 사용하지 않는 13306으로 host를 매핑하였다. )
실행 후 docker ps 로 프로세스 확인
D:\docker-mysql>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b364d7f3e6ef mysql "docker-entrypoint.s…" 7 seconds ago Up 2 seconds 33060/tcp, 0.0.0.0:13306->3306/tcp, :::13306->3306/tcp mysqldb
콘솔 접속
docker exec -ti mysqldb mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
발생할 수 있는 각종 오류들...
Unable to load authentication plugin 'caching_sha2_password' 발생 시 ( DBeaver 접속 시 )
위와 같이 MySQL5가 있고 MySQL이 있는데 MySQL로 접속한다.
여기서 중요한것은 드라이버이다. "Edit Driver Settings"에서 mysql-connector 버전을 확인한다.
access denied for user ''@'' (using password:YES) 발생 시
접속하려는 user의 수신 아이피를 연다. ( localhost가 아닌 %로 모두 오픈 )
mysql> create user 'dodo'@'%' identified by '1234';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all privileges on *.* to 'dodo'@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
pulibc key retrieval is not allowed 발생 시
해당 문제는 8.x이상 버전에서 발생하는 것으로 확인된다. DBeaver에서는 "Driver properties"에서 allowPublicKeyRetrieval=true로 설정해준다.
반응형