Windows 10의 Docker: 사용자 지정 구성 파일로 mysql:8.0.30-debian 실행.

사용자 지정 구성 파일 E:\mysql-config\mysql-docker.cnf를 사용하여 Windows 10에서 공식 mysql:8.0.30-debian 이미지를 실행하는 데 필요한 단계입니다.

내 Windows 10 Pro 컴퓨터에서 Docker Official Image mysql:8.0.30-debian을 실행할 때 사용자 지정 구성 파일 E:\mysql-config\mysql-docker.cnf를 사용하고 싶습니다. 이 작업을 수행하는 단계를 설명하고 있습니다.

❶ mysql-docker.cnf는 *E:\mysql-config*에 있는 유일한 파일입니다. 내용:

[mysqld]
default_authentication_plugin=mysql_native_password
log_bin_trust_function_creators=1


❷ 이 mysql:8.0.30-debian 이미지의 경우 사용자 지정 구성 파일은/etc/mysql/conf.d/mysql.cnf입니다.

권한은 다음과 같습니다. 소유자는 읽기 및 쓰기가 있습니다. 그룹 및 기타는 읽기만 가능합니다. 자체 사용자 지정 구성 파일에는 동일한 권한이 있어야 합니다.

❸ 마운트 E:\mysql-config\mysql-docker.cnf 권한을 변경하려면 디렉토리만 필요합니다. E:\mysql-config**는 **//e/mysql-config로 변환됩니다. 장착 옵션은 다음과 같습니다.

--mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d


실행할 명령:

E:\>docker run -d -it --rm --name mysql-docker --mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pcb.2176310315865259 mysql:8.0.30-debian


구성 파일 권한을 변경하려면 bash 프로세스를 사용하여 대화형 모드에서 컨테이너를 실행합니다.

E:\>docker exec -it mysql-docker bash


이 구성 파일만 있는 Windows 10 Pro 디렉터리를 보고 있는지 확인하고 권한도 기록해 둡니다.

root@5b671d85c90b:/# ls -l /etc/mysql/conf.d



total 4
-rwxrwxrwx 1 root root 95 Aug  8 11:41 mysql-docker.cnf


해당 컨테이너 사용자 지정 구성 파일과 일치하도록 권한을 변경합니다. 즉, 소유자는 읽고 쓸 수 있습니다. 그룹 및 기타는 다음만 읽었습니다.

root@5b671d85c90b:/# cd /etc/mysql/conf.d/
root@5b671d85c90b:/# chmod u+rw-x mysql-docker.cnf
root@5b671d85c90b:/# chmod g+r-wx mysql-docker.cnf
root@5b671d85c90b:/# chmod o+r-wx mysql-docker.cnf


이제 권한이 정확해야 합니다. 확인하려면:

root@5b671d85c90b:/# ls -l



total 4
-rw-r--r-- 1 root root 95 Aug  8 11:41 mysql-docker.cnf


❹ 사용자 지정 구성 파일이 적용되는지 확인하려면 중지하고 다시 실행하십시오. 이번에는 다음 옵션을 사용하여 적절한 데이터 영구 볼륨으로도 실행합니다.

--mount source=mysqlvol,target=/var/lib/mysql


컨테이너를 중지하고 실행하는 명령은 다음과 같습니다.

E:\>docker stop mysql-docker
E:\>docker run -d -it --rm --name mysql-docker -p 3306:3306 -e MYSQL_ROOT_PASSWORD=pcb.2176310315865259 --mount type=bind,source=//e/mysql-config,target=/etc/mysql/conf.d --mount source=mysqlvol,target=/var/lib/mysql mysql:8.0.30-debian


❺ 사용자 지정 구성이 적용되는지 확인합니다. MySQL 명령줄을 사용하여 사용자 지정 옵션의 값을 쿼리합니다. 대화형 bash 셸을 실행합니다.

E:\>docker exec -it mysql-docker bash


MySQL 명령줄을 시작합니다.

root@dfa641fecc0a:/# mysql -uroot -ppcb.2176310315865259


⓵ default_authentication_plugin=mysql_native_password 확인:

mysql> show variables like 'default_authentication_plugin';



+-------------------------------+-----------------------+
| Variable_name                 | Value                 |
+-------------------------------+-----------------------+
| default_authentication_plugin | mysql_native_password |
+-------------------------------+-----------------------+
1 row in set (0.01 sec)


⓶ log_bin_trust_function_creators=1인지 확인합니다. 1은 ON으로 보고됩니다.

mysql> show variables like 'log_bin_trust_%';



+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.00 sec)


❻ Windows MySQL 클라이언트 도구를 사용하여 mysql-docker 컨테이너의 MySQL에도 연결할 수 있어야 합니다. 예:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql" --protocol=TCP --host=localhost --port=3306 --user=root --password=pcb.2176310315865259


default_authentication_plugin의 값이 mysql_native_password이므로 성공적으로 로그인해야 합니다. 즉. 오류가 발생하지 않아야 합니다.

오류 2059(HY000): 인증 플러그인 'caching_sha2_password'를 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다.

✿✿✿

이 작업을 수행하는 데 시간이 좀 걸렸습니다... 다른 사람에게 도움이 될 수 있도록 문서화합니다. 저는 실제로 mysql:8.0.30-debian을 개발 서버로 사용하고 있습니다. 나중에 더 많은 문서를 작성하겠습니다. 도움이 되셨길 바라며 읽어주셔서 감사합니다.

좋은 웹페이지 즐겨찾기