도커 MariaDB/Mysql 덤프
https://hub.docker.com/_/mariadb/에서 실행 중인 컨테이너에서 mysqldump를 사용하려면 어떻게 해야 합니까?
유용한 문서나 데이터를 찾을 수 없습니다.
데이터베이스를 백업 및 복원하는 모든 방법.
다음은 콘티너 실행 명령어입니다.
docker run --name myaapp-mariadb -v /databases/maria:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mariadb:10
다음과 같이 mariadb 서버 컨테이너를 작성했다고 가정하면 다음과 같습니다.
docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:latest
그런 다음 다른 클라이언트 컨테이너에서 액세스합니다.
docker run -it --link some-mariadb:mysql \
--rm mariadb:latest \
sh -c 'exec mysqldump -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" database_name' > database_name_dump.sql
mysql 공식 이미지 페이지에는 더 유용한 사용 팁이 많이 있습니다.
인정된 답변은 모든 의미에서 받아들여지고 정확합니다.또한 데이터베이스를 외부 볼륨에 매핑한 경우에 해당됩니다.
예를 들어, 컨테이너가 다음 명령을 사용하여 작성된 경우
docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v /dir_path_on_your_machine/mysql-data:/var/lib/mysql -d mariadb:latest
그러면 cmd 라인 또는 터미널에서 다음 명령을 실행할 수 있습니다.
docker exec mysqldb mysqldump --user=root --password=password dbname > /dir_path_on_your_machine/mysql-data/dump/db.sql
그러나 위의 명령을 사용하여 작성된 덤프는 저장 프로시저, 함수 및 이벤트를 덤프하지 않습니다.그러기 위해서는 추가 파라미터가 필요합니다.
--triggers Dump triggers for each dumped table.
--routines Dump stored routines (functions and procedures).
--events Dump events.
따라서 원하는 결과를 얻기 위해 위의 매개 변수를 포함하도록 명령을 수정할 수 있습니다.
update 명령어 예시
docker exec mysqldb mysqldump --routines --triggers --user=root --password=password dbname > /dir_path_on_your_machine/mysql-data/dump/db1.sql
Import 관련 에러가 발생했을 경우는, 이 에러가 도움이 되는지를 확인해 주세요.
언급URL : https://stackoverflow.com/questions/32610787/docker-mariadb-mysql-dump
'programing' 카테고리의 다른 글
버튼을 사용하여 페이지를 다른 페이지로 리디렉션하려면 어떻게 해야 합니까? (0) | 2022.10.19 |
---|---|
cygwin에서 mysql에 연결 (0) | 2022.10.19 |
MySQL의 연산자 <=>는 무엇입니까? (0) | 2022.10.19 |
새로운 DB 버전에서 이전 Flyway 마이그레이션이 비활성화되는 경우 어떻게 처리합니까? (0) | 2022.10.19 |
Ubuntu에 mysql-server를 설치하는 방법 (0) | 2022.10.19 |