Windows 10의 Docker: 사용자 지정 구성 파일로 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을 개발 서버로 사용하고 있습니다. 나중에 더 많은 문서를 작성하겠습니다. 도움이 되셨길 바라며 읽어주셔서 감사합니다.
Reference
이 문제에 관하여(Windows 10의 Docker: 사용자 지정 구성 파일로 mysql:8.0.30-debian 실행.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/behainguyen/docker-on-windows-10-running-mysql8030-debian-with-a-custom-config-file-2ebd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)