MySQL 데이터베이스에서 단일 테이블 백업하는 방법
MySQL에서 특정 테이블 하나만 백업하고 싶다면 두 가지 방법을 사용할 수 있습니다. 첫 번째는 BACKUP TABLE 구문이고, 두 번째는 mysqldump 유틸리티입니다. 다만 BACKUP TABLE 구문은 MySQL 5.0 및 그 이전 버전에서만 제공되던 기능으로 현재는 더 이상 사용할 수 없으므로, 최신 버전 환경에서는 mysqldump를 활용하는 것이 표준적인 방법입니다.
이 글에서는 mysqldump를 이용해 단일 테이블을 백업하는 전체 과정을 단계별로 살펴보겠습니다.
1단계. 명령 프롬프트(cmd) 실행하기
mysqldump는 콘솔에서 동작하는 도구이므로 먼저 명령 프롬프트를 열어야 합니다. Windows 단축키를 이용하면 빠르게 실행할 수 있습니다.
windowskey+R;
위 단축키를 누른 뒤 실행 창에 cmd를 입력하고 Enter를 누르면 됩니다.

그러면 다음과 같이 명령 프롬프트 창이 열립니다.

2단계. MySQL bin 폴더로 이동하기
mysqldump 실행 파일은 MySQL이 설치된 bin 폴더 안에 있습니다. 일반적인 기본 설치 경로는 다음과 같습니다.
C:\Program Files\MySQL\MySQL Server 8.0\bin
cd 명령어로 위 경로를 입력해 bin 폴더로 이동합니다.

3단계. mysqldump 명령으로 테이블 백업하기
bin 폴더에 진입했다면 아래 명령어를 입력하여 'business' 데이터베이스의 'student' 테이블을 백업합니다.
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqldump -u Manish -p business student > E:\student.sql
Enter password: ***********
각 옵션의 의미는 다음과 같습니다.
- -u Manish : 접속할 MySQL 사용자 계정
- -p : 비밀번호 입력 요청
- business : 백업 대상 데이터베이스명
- student : 백업할 테이블명
- > E:\student.sql : 덤프 결과를 저장할 파일 경로
4단계. 백업 결과 확인하기
명령이 정상적으로 수행되면 지정한 경로에 SQL 덤프 파일이 생성됩니다. 생성된 파일의 내용은 대략 다음과 같습니다.
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: business
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8mb4 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE,
SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `student`
--
DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `student` (
`id` int(11) DEFAULT NULL,
`Name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
KEY `NameStuIndex` (`Name`),
KEY `idIndex` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `student`
--
LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT into `student` VALUES (1,'John'),(2,'Bob');
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-10-03 10:30:58
덤프 파일에는 DROP TABLE, CREATE TABLE 문을 통한 테이블 구조 정보와 INSERT 문을 통한 실제 데이터가 모두 포함되어 있습니다. 따라서 나중에 이 파일을 실행하기만 하면 테이블을 원래 상태 그대로 복원할 수 있습니다.
참고. 백업한 테이블 복원하기
백업해 둔 SQL 파일로 테이블을 되돌리고 싶다면 mysql 클라이언트에서 입력 방향(<)으로 파일을 지정하면 됩니다.
mysql -u Manish -p business < E:\student.sql
이처럼 mysqldump를 활용하면 데이터베이스 전체가 아닌 필요한 테이블만 선택적으로 백업할 수 있어, 용량을 절약하면서도 효율적인 데이터 관리가 가능합니다.