집 >데이터 베이스 >MySQL 튜토리얼 >Docker 공식 mysql 이미지 사용자 정의 구성 방법
코드 복사 코드는 다음과 같습니다.
$ docker run --name some-mysql -e mysql_root_password=my-secret-pw -d daocloud.io/mysql:tag
some-mysql은 컨테이너의 이름을 지정하고, my-secret -pw는 루트 사용자의 비밀번호를 지정하고 태그 매개변수는 원하는 mysql 버전을 지정합니다
이렇게 하면 데이터가 유지되지 않으므로 로컬 디렉터리를 시작 매개변수에 마운트해야 합니다
그래서 데이터베이스는 실행 중이었는데, 최근 프로그램에서 이모티콘 표현을 지원해야 하고, mysql의 문자셋도 변경되어야 합니다.
코드 복사 코드는 다음과 같습니다.
$ docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e mysql_root_password=my-secret-pw -d daocloud.io /mysql: tag
이때 사용자 정의 구성 파일을 마운트할 수 있습니다. 공식 문서에는 mysql 서비스가 시작되면 /etc/mysql/my.cnf가 구성 파일로 사용된다고 명시되어 있습니다. /etc/mysql/conf.d .cnf 접미사가 있는 디렉터리의 모든 파일입니다. 이러한 파일은 /etc/mysql/my.cnf 파일의 구성을 확장하거나 재정의합니다. 따라서 고유한 구성 파일을 생성하여 mysql 컨테이너의 /etc/mysql/conf.d 디렉터리에 마운트할 수 있습니다.
따라서 데이터베이스 구성을 변경하는 가장 쉬운 방법은 호스트 시스템에서 새 구성 파일을 생성하고 이를 utf8mb4
[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = false character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysql] default-character-set=utf8mb4로 변경하는 것입니다
docker cp /home/my.cnf(宿主机文件路径) [容器id]:/etc/mysql/mysql.conf.d그런 다음 파일을 해당 docker 컨테이너 폴더에 복사합니다
# docker run --name mysql-b \ > -p 33002:3306 -v /zc/mysql/datadir-b:/var/lib/mysql \ > -e mysql_root_password='123456' -d mysql:latest마지막으로 docker stop을 사용합니다. 컨테이너를 다시 시작하는 명령을 시작하여 사용자 지정 구성 로드를 구현했습니다.
docker의 공식 mysql 이미지로 구성된 컨테이너를 시작할 수 없습니다.
docker exec -it mysql-b bash정상적으로 시작하세요. 문제 없습니다. 일반적으로 mysql을 사용할 때에는 매개변수를 설정해야 합니다. 매개변수를 설정하려면 먼저 컨테이너의 bash를 입력하고 작업을 수행해야 합니다.
# cat >test.cnf <<eof [mysqldump] user=root password='123456' [mysqld] max_allowed_packet=8m lower_case_table_names=1 character_set_server=utf8 max_connections=900 max_connect_errors=600 default-character-set=utf8 eofmysql의 기본 구성 파일은 /etc/mysql/my.cnf 파일입니다. 구성을 사용자 정의하려면 /etc/mysql/conf.d 디렉터리에 .cnf 파일을 생성하는 것이 좋습니다. 새로 생성된 파일은 접미사가 cnf이면 임의로 이름을 지정할 수 있습니다. 새로 생성된 파일의 구성 항목은 /etc/mysql/my.cnf의 구성 항목을 재정의할 수 있습니다. mysql의 공식 docker 이미지는 vim 편집기를 제공하지 않기 때문에 cat 명령을 사용하여 파일을 생성하고 내용을 추가했습니다.
default-character-set=utf8종료 후 컨테이너를 중지했다가 다시 시작하면 컨테이너가 가능하다는 것을 알았습니다. 시작하지 마십시오.
Solution
docker run -it --rm mysql:tag --verbose --help > help.txt이 줄을 삭제하세요. 구성 파일을 추가할 때 그러한 줄이 없는지 확인하십시오.
문제 원인
모든 구성 항목을 보려면 다음 명령을 사용하고 파이프라인을 사용하여 출력 도움말을 help.txt 파일에 넣을 수 있습니다.
rrreee
위 내용은 Docker 공식 mysql 이미지 사용자 정의 구성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!