mysqldump 덤프 파일로 데이터베이스 복원하기
mysqldump를 사용해 여러 개의 데이터베이스 또는 서버의 모든 데이터베이스를 백업(덤프)해 두었다면, 이를 손쉽게 다시 복원할 수 있습니다. 복원 작업은 mysql 클라이언트 명령어와 리다이렉션(<)을 이용해 덤프 파일을 MySQL 서버에 그대로 적용하는 방식으로 진행됩니다.
여러 데이터베이스 복원하기
예를 들어 'tutorials'와 'query1'이라는 두 개의 데이터베이스를 하나의 덤프 파일인 tutorials_query1.sql에 저장해 둔 경우, 아래와 같은 명령어로 한 번에 복원할 수 있습니다.
C:\mysql\bin> mysql -u root < tutorials_query1.sql
위 명령을 실행하면 덤프 파일 안에 포함된 여러 데이터베이스가 한꺼번에 복원됩니다. 이때 주목할 점은 데이터베이스 이름을 따로 지정할 필요가 없다는 것입니다. mysqldump가 여러 데이터베이스를 덤프할 때 각 데이터베이스의 생성(CREATE DATABASE) 및 사용(USE) 구문까지 함께 포함하기 때문입니다.
모든 데이터베이스 복원하기
mysqldump의 --all-databases 옵션으로 서버 전체를 덤프한 경우에도 복원 방법은 동일합니다. 예를 들어 모든 데이터베이스가 alldatabases.sql 파일에 저장되어 있다면 다음과 같이 실행합니다.
C:\mysql\bin> mysql -u root < alldatabases.sql
위 명령은 덤프 파일에 담긴 모든 데이터베이스를 원래 상태 그대로 복원합니다. 마찬가지로 데이터베이스 이름을 명시할 필요 없이, 덤프 파일만 지정하면 됩니다.
복원 시 유의 사항
- 덤프 파일 경로 확인: 실행 위치에 따라 덤프 파일의 정확한 경로를 함께 지정해야 합니다.
- 사용자 권한: 데이터베이스를 새로 생성하려면 root 또는 충분한 권한을 가진 계정으로 접속해야 합니다.
- -p 옵션 사용: 비밀번호가 설정된 계정이라면
mysql -u root -p < alldatabases.sql처럼 비밀번호 입력 옵션을 추가하는 것이 안전합니다.
이처럼 mysqldump로 만든 덤프 파일은 단순히 mysql 명령에 넘겨주기만 하면 되기 때문에, 여러 데이터베이스든 전체 데이터베이스든 빠르고 간편하게 복구할 수 있습니다.