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로 설정해준다.
반응형
'DevOps' 카테고리의 다른 글
Redis - 현재 연결은 원격 호스트에 의해 강제로 끊겼습니다. or Could not connect to Redis at REMOTE.IP:6379: Connection refused (0) | 2023.04.05 |
---|---|
Vagrant - Ubuntu 가상환경 구동시 오류(Timed out while waiting for the machine to boot) (0) | 2023.04.05 |
SDKMAN 으로 자바 버전 변경하기( Java 목록 확인 안되는 경우! ) (2) | 2022.11.03 |
AWS - CodeDeploy, ScriptTimedOut 오류 발생 시 (0) | 2022.09.12 |
SDKMAN(SDK 매니저) 윈도우 설치 ( springboot 버전 관리 예 ) (0) | 2022.07.12 |