7.4.1 mysqldump를 사용하여 SQL 형식으로 데이터 덤프
이 섹션에서는 mysqldump를 사용하여 SQL 형식의 덤프 파일을 만드는 방법에 대해 설명합니다. 그런 덤프 파일 재 장전 내용은 섹션 7.4 "SQL 포맷 백업 새로 고침" 을 참조하십시오.
기본적으로 mysqldump는 정보를 SQL 문으로 표준 출력에 기록합니다. 출력을 파일에 저장할 수 있습니다.
shell> mysqldump [ arguments
] > file_name
모든 데이터베이스를 덤프하려면 --all-databases
옵션을 사용하여 mysqldump를 호출합니다.
shell> mysqldump --all-databases > dump.sql
특정 데이터베이스만을 덤프하려면 명령 줄에서 그들을 지정하고 --databases
옵션을 사용합니다.
shell> mysqldump --databases db1 db2 db3 > dump.sql
--databases
옵션을 사용하여 명령 행에서 모든 이름이 데이터베이스 이름으로 처리됩니다. 이 옵션을 사용하지 않으면 mysqldump는 첫 번째 이름을 데이터베이스 이름으로 그 이후의 이름을 테이블 이름으로 처리합니다.
--all-databases
또는 --databases
를 사용하면 mysqldump는 각 데이터베이스 덤프 전에 CREATE DATABASE
및 USE
문을 씁니다. 이렇게하면 덤프 파일을 다시로드되면, 그것은 각 데이터베이스가 존재하지 않으면 생성하여 기본 데이터베이스하기 위해 데이터베이스의 내용이 그 원본의 동일한 데이터베이스에로드됩니다. 덤프 파일에 각 데이터베이스를 다시 작성하기 전에 그 삭제를 강제하는 경우 --add-drop-database
옵션을 사용합니다. 이 경우, mysqldump는 각 CREATE DATABASE
문 앞에 DROP DATABASE
문을 씁니다.
단일 데이터베이스를 덤프하려면 명령 줄에서 그것을 지정합니다.
shell> mysqldump --databases test > dump.sql
단일 데이터베이스의 경우, --databases
옵션을 생략 할 수 있습니다.
shell> mysqldump test > dump.sql
2 개의 전제 명령의 차이점은 --databases
를 붙이지 않으면 덤프 출력에 CREATE DATABASE
또는 USE
문이 포함되지 않습니다. 여기에는 몇 가지 문제가 있습니다.
덤프 파일을 다시로드 할 때 서버가 다시로드 데이터베이스를 인식하도록 기본 데이터베이스 이름을 지정해야합니다.
다시로드하면 원래의 이름과 다른 데이터베이스 이름을 지정할 수 있으며이를 통해 데이터를 다른 데이터베이스로 다시로드 할 수 있습니다.
리로드 데이터베이스가 존재하지 않는 경우 먼저 그것을 만들 필요가 있습니다.
출력은
CREATE DATABASE
문이 포함되지 않으므로--add-drop-database
옵션이 비활성화됩니다. 그것을 사용해도DROP DATABASE
문은 생성되지 않습니다.
데이터베이스에서 특정 테이블 만 덤프하려면 명령 줄에서 데이터베이스 이름 뒤에 그들을 지정합니다.
shell> mysqldump test t1 t3 t7 > dump.sql