Docker를 사용하여 mysqldump 실행
개시하다
실습 첫날에 저는 먼저 데이터베이스 정보를 받는 API의 로컬 환경을 구축했습니다.Docker에api를 올리는 것은 좋지만 이후 데이터베이스 복제는 힘들어요.그때 가장 몰랐던 것은
mysqldump
의 지령이었다.이것을 단번에 이해하기 위해 매끄럽게 정리했다.이른바 mysqldump
mysqldump
는 데이터베이스 백업을 위한 명령입니다.원래 데이터를 재현하는 SQL 문을 생성할 수 있습니다.참고로 mysqldump
"mysql"만 설치하면 터미널에서 사용할 수 있습니다.터미널에서 확인
〜 % mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
_________________________________
_________________________________
____helpオプションでさらに詳しく_____
_________________________________
_________________________________
〜 % mysqldump --help
mysqldump Ver 10.13 Distrib 5.6.51, for osx10.16 (x86_64)
Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
The following groups are read: mysqldump client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file,
except for login file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
Also read groups with concat(group, suffix)
--login-path=# Read this path from the login file.
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
-Y, --all-tablespaces
Dump all the tablespaces.
_________________________________
_________________________________
______以降もオプションがズラリ_______
_________________________________
_________________________________
편리한 옵션
옵션 이름
과업
--single-transaction
서버에서 데이터를 덤프하기 전에 BEGIN SQL 문을 보냅니다.
--quick
표의 모든 기록을 메모리에 버퍼링하지 않고 한 줄 한 줄 덤프하다
탁자를 크게 펼칠 때'--single-transsaction'과'--quick'을 동시에 사용하는 것이 효과적이다.마치
주제의 Docker+mysqldump
Docker에서 mysqldump를 실행하기 위해 다음 명령을 사용했습니다.
docker exec -it 〜.mysql mysql -u -p 〜〜
이 때 mysql 편집 권한을 사용자에게 양도할 수 없습니다.그래서 작전이 바뀌었다.Docker에 직접 들어가서 명령줄을 입력하면 머리의
docker exec -it 〜.mysql
가 사라집니다.즉
Docker 외부에서
docker exec -it 〜.mysql mysqldump -u -p 〜〜
Docker에서
mysqldump -u -p 〜〜
이렇게 하면 mysql의 사용자 권한을 복잡하게 하지 않고 mysqldump를 통과할 수 있다.
Summary Of The Day(SOTD)
이후
mysqldump
이외의 mysql 명령을 실행했지만 문제 없이 통과했습니다.mysql의 사용자 전환과 권한 전환이 Docker 등 용기 안팎에서 순조롭지 않을 때 안에서 밖으로 쌍방의 방법이 좋다는 것을 알았습니다.오늘의 공부.