집 >데이터 베이스 >MySQL 튜토리얼 >docker로 mysql을 설치하는 방법은 무엇입니까?
복사해서 붙여넣고 따라하기만 하면 빠르게 완료됩니다. 자세한 단계를 확인할 필요가 없습니다
docker pull mysql:5.7
docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
cd /usr/local/mysql/conf
vim my.cnf
다음 내용을 붙여넣고 저장합니다
[client] default_character_set=utf8 [mysqld] collation_server=utf8_general_ci character_set_server=utf8
docker restart mysql
도구를 사용하여 테스트합니다( 포트를 여는 것을 기억하세요), 루트 사용자 비밀번호는 123456
docker search mysql
먼저 발견된 것이 지정하지 않고 최신 버전을 가져옵니다. 5.7
docker pull mysql:5.7
내부와 외부 모두에서 포트 3306을 사용합니다(호스트 포트 3306이 사용되지 않는지 확인하세요. 예를 들어 호스트에도 mysql이 설치되어 있습니다). , 루트 사용자 비밀번호를 123456
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql mysql:5.7
컨테이너 내부에서 mysql에 접속하여 데이터베이스를 생성하고 mysql이 정상적으로 사용되는지 테스트합니다.
docker exec -it mysql /bin/bash
테이블 생성 및 데이터 삽입 , 그것도 괜찮습니다
로컬에서 사용 Navicat 도구에 연결하고 레코드를 삽입하고 쿼리하는 데 문제가 없습니다. 그러나 중국어를 삽입할 때 오류가 보고됩니다. 중국어 오류는 문자 세트 문제임에 틀림없습니다. 컨테이너에서 문자 세트를 확인하면(클라이언트 도구가 일부 문자 세트를 로컬 문자 세트로 처리함) 대부분이 utf8
show variables like 'character%';
이 아님을 알 수 있습니다.
이제 mysql 구성 파일은 여전히 컨테이너에 있고 호스트에 매핑되지 않아 수정하기가 매우 편리하지 않으며 컨테이너가 삭제되면 사라지게 됩니다
이때, 컨테이너 데이터 볼륨
을 사용해야 합니다. 모르는 경우 이전 블로그 게시물을 확인하세요. 여기를 클릭하세요컨테이너 데이터 볼륨을 사용하여 마운트합니다. mysql 데이터, 구성 파일 및 로그를 로드삭제합니다.docker run -d -p 3306:3306 --privileged=true -v /usr/local/mysql/log:/var/log/mysql -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.73개의 디렉터리, 즉 로그, 데이터, 구성 파일을 마운트합니다.
mysql 구성 파일을 생성합니다.
위에서 mysql 구성 파일 디렉터리가 마운트되었습니다. 구성 파일 디렉터리에 새로운 my.cnf 구성 파일을 생성하고, 다음 내용을 작성하고, 클라이언트와 mysql 서버를 설정하면 됩니다. 인코딩은 utf8
[client]default_character_set=utf8[mysqld]collation_server=utf8_general_cicharacter_set_server=utf8
구성 파일을 변경한 후 mysql 컨테이너를 다시 시작하고 컨테이너에 다시 들어가 문자 집합을 보면 모든 것이 올바른 것을 볼 수 있습니다
데이터베이스 테이블을 다시 생성하고 중국어 테스트를 삽입하고 성공적으로 삽입되었습니다
그리고 mysql 데이터 디렉토리도 로컬로 마운트되어 있습니다. 컨테이너를 삭제하고 새 컨테이너를 생성하더라도 동일한 데이터 볼륨을 사용하면 이전에 생성된 데이터베이스 테이블을 복원할 수 있습니다.
위 내용은 docker로 mysql을 설치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!