CLASS web

MySQL

DB 백업 및 복원

DB 백업 및 복원

이번에는 데이터 베이스의 백업과 복원에 대해서 알아봅시다.

지금처럼 연습하는 겸해서 만드는 것이 아닌 실제 사이트를 운영시에 고객정보가 담긴 데이터베이스가 없어진다면...

정말 좌절하겠죠. 백업은 필수!!

그래야 날려먹어도 바로바로 복원시켜서 위기를 극복할수 있어요.

MySQL이 위치한 곳인 /Application/MAMP/Library/bin으로 이동합니다.

만약 mysql에 접속된 상태라면 접속을 끊어주세요.

백업하기

백업하는 명령어는 다음과 같아요.

mysqldump -u계정 -p 데이터베이스명 > 백업파일명.sql

그럼 smart 데이터베이스를 백업하자.

백업할 파일명은 smartdump.sql 이다.

mysqldump -uroot -p smart > smartdump.sql

를 입력 후 비밀번호를 입력한다.

MacOS 사용자는 위의 명령어는 실행이 안된다. 다음의 명령어를 입력한다.

sudo ./mysqldump -uroot -p smart > smartdump.sql
mysql image

위와 같은 화면이 나왔다면 성공!

터미널에서 ls -al명령어를 쳐보면 smartdump.sql 파일을 볼 수 있다.

ls -al

이 sql파일을 에디터로 열어보면 정보들이 담겨있는걸 알 수 있다.

mysql image

ATOM 에디터로 smartdump.sql 파일을 열어보자.
ATOM 프로그램을 먼저 열고 smartdump.sql 파일을 열어준다.

mysql image

여러 DB 명령문들이 보인다.

DROP TABLE IF EXISTS `mydevices`;
CREATE TABLE `mydevices` (
  `mydevicesID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `cpu` varchar(6) DEFAULT NULL,
  `company` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`mydevicesID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

LOCK TABLES `mydevices` WRITE;
INSERT INTO `mydevices` VALUES (1,'iPad Pro 12.9 5th','M1','APPLE'),(2,'iPhone 13 Pro MAX','A15','APPLE'),(3,'MacBook Pro 14','M1 Pro','APPLE');
UNLOCK TABLES;

DROP TABLE IF EXISTS `mystudents`;

CREATE TABLE `mystudents` (
  `mystudentsID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  `gender` enum('m','w','n') DEFAULT 'n',
  `job` varchar(20) DEFAULT NULL,
  `area` varchar(15) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `rank` int(11) DEFAULT NULL,
  PRIMARY KEY (`mystudentsID`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

LOCK TABLES `mystudents` WRITE;
UNLOCK TABLES;

하나씩 어떤 내용인지 확인해보자.

DROP TABLE IF EXISTS `mydevices`;

위의 명령문은 mydevices 테이블이 있으면 삭제하는 명령문이다.

CREATE TABLE `mydevices` (
  `mydevicesID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `cpu` varchar(6) DEFAULT NULL,
  `company` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`mydevicesID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

위의 명렁문은 이미 아시겠지만 mydevices 테이블을 생성하는 명령문이다.

AUTO_INCREMENT=4가 있는데 mydevicesID 번호 4번부터 입력한다는 의미이다.

LOCK TABLES `mydevices` WRITE;

위의 명령문에서 LOCK TABLES은 mydevices 테이블을 잠그는 명령문이다.
해당 테이블을 읽거나 쓰기가 불가해진다.
하지만 테이블명 뒤에 WRITE가 적혀있다. 쓰기는 허용을 하는 상태이다.

INSERT INTO `mydevices` VALUES (1,'iPad Pro 12.9 5th','M1','APPLE'),(2,'iPhone 13 Pro MAX','A15','APPLE'),(3,'MacBook Pro 14','M1 Pro','APPLE');

위의 명령문은 아시다싶이 해당 테이블의 데이터를 입력하는 명령문이다.

입력을 다 했으므로 이제 테이블의 잠금을 해제한다.

UNLOCK TABLES;

복구하기

그럼 MySQL에 접속해서 smart DB에 있는 모든 테이블을 삭제하자. 테이블을 삭제 후 MySQL을 종료하자..

mysql backup

삭제 했으면 이제 복원을 해보자.

mysql -uroot -p 데이터베이스명 < 백업파일명
sudo ./mysql -uroot -p smart < smartdump.sql
mysql backup

그리고 확인해보면 테이블이 다시 복원되어있다.

mysql backup



댓글 0개

정렬기준

PinkCoding

PinkCoding

X

PinkCoding

Web Scratch Pad

X

loading

            
            
        

컨텐츠로 돌아가기