2017-09-29 1 views
0

mysql으로 도커 컨테이너를 시작했습니다.
사실 새 사용자와 새 테이블을 만들고 싶습니다. MySQL Workbench에서해야합니다.

이 내 고정 표시기 실행 명령을 인도 표준시 :
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest

내 질문은 :
는 어떻게 사용자와 내 테이블을 생성 (전용 컨테이너의 첫 시작을위한)는 SQL 시작 스크립트를 추가 할 수 있습니까?
어떤 단계를 수행해야합니까?

여기 좀 도와 주시겠습니까?
감사합니다.mysql 도커 컨테이너에 시작 스크립트를 추가하는 방법은 무엇입니까?

답변

1

당신은 (.sql.gz.sh, .sql)

docker run -p 3306:3306 --name mysql-server \ 
-v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \ 
-v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \ 
-e MYSQL_ROOT_PASSWORD=root \ 
-e MYSQL_USER=youruser \ 
-e MYSQL_PASSWORD=youruserpassword \ 
-d mysql:latest 

설명, MYSQL_USER를 통해 사용자를 생성 MYSQL_PASSWORD ENV의 바르 및 시작 스크립트와 디렉토리를 매핑 할 볼륨을 /docker-entrypoint-initdb.d를 사용해야에서 : https://hub.docker.com/_/mysql/

MYSQL_USER , MYSQL_PASSWORD
이 변수는 선택 사항이며, w 사용자를 설정하고 해당 사용자의 비밀번호를 설정하십시오. 이 사용자에게는 MYSQL_DATABASE 변수로 지정된 데이터베이스에 대한 수퍼 유저 권한 (위 참조)이 부여됩니다. 두 변수는 사용자를 작성하는 데 필요합니다. 컨테이너를 처음 시작 신선한 예를
초기화

는, 지정된 이름의 새 데이터베이스가 생성되어 제공되는 구성 변수로 초기화됩니다. 또한 확장자가 .sh, .sql.sql.gz 인 파일을 /docker-entrypoint-initdb.d에서 실행합니다. 파일은 알파벳순으로 실행됩니다. mysql 서비스를 쉽게 채울 수 mounting a SQL dump into that directorycustom images 제공하는 데이터. SQL 파일은 기본적으로 MYSQL_DATABASE 변수로 지정된 데이터베이스로 가져옵니다.

+0

감사합니다. -v ~/Development/web/myproject/docker/yourstartupscripts :/docker-entrypoint-initdb.d' -> 그게 내가 검색 한 내용입니다. – m1well

+0

새로운 사용자를 생성하면 어떤 차이가 있습니까? 스크립트에 의해 또는 docker run 명령으로 작성 하시겠습니까? – m1well

+1

@ m1well 여기에서 사용자가 어떻게 생성되었는지 정확히 확인할 수 있습니다. https://github.com/docker-library/mysql/blob/0590e4efd2b31ec794383f084d419dea9bc752c4/5.7/docker-entrypoint.sh#L166-L174 – adam187

관련 문제