필자는 우선 Mysql을 기존에 다른 서버에서 사용하고 있었다.
해당 서버를 지우기 위해서 현재 서버를 구축해서 이동을 하고 있는 작업을 틈틈히 진행하기 때문에..
Mysql DB 백업 및 복구 방법에 대해서 알아보려고 한다.
블로그 용도를 위해서 샘플 데이터베이스를 넣어볼 예정이다.
샘플 데이터 베이스는 Mysql 에서 제공하는 샘플 데이터 베이스를 다운받았다.
https://www.mysqltutorial.org/mysql-sample-database.aspx/
해당 문서에서 Download를 진행하면 압축파일이 생긴다.
데이터베이스 자체의 용량은 그렇게 크지 않다.
그럼 이제 Workbench를 통해서 데이터를 넣어주자.
Workbench에서 File -> Open SQL Script 를 선택해서 다운로드 받은 해당 파일을 실행한다.
sql 파일을 오픈하면 해당 내용으로 표기가 되어있다. 해당 부분을 다 긁어서 실행을 해서 create 와 insert를 진행해줘도 되며, File -> Run Sql Script 를 진행해서 바로 넣어줘도 된다.
해당 방식으로 실행을 하게 되면,
Schema 와 Character Set을 선택해서 run을 해주면 해당 데이터베이스에 내용이 입력된다.
해당 방식이 복구 방식으로 인식하면 된다. 즉, 백업된 sql 데이터를 insert 할 수 있다는 내용이다.
에러가 표기되었다. 역시 script 파일 내용을 검토를 진행하지 않고, 바로 업로드 할 경우에는 오류가 발생한다.
그럼 샘플 스크립트 파일을 한번 검토 해보자.
해당 부분의 주석처리 내용들이 잘못되어있었다. 필자는 어차피 데이터베이스를 저번에 만들어 두었기 때문에 해당 내용을 삭제하도록 하겠다. 저 부분은 새로운 데이터베이스를 만들고 하는 부분이라 그다지 필요가 없다.
맨 아래쪽에도 해당 내용이 있기 때문에 같이 지워준다.
추가적으로 현재 필자가 원하는 Charater Set 은 utf8이기 때문에 해당 부분도 utf8로 변경한 후 진행했다.
이렇게 인서트가 완료되면
이렇게 복구된 내용을 확인할 수 있다. 자 그럼 이제 기존 테이블 및 데이터를 백업시키는 내용을 진행해보자.
백업에 대한 내용은 다음과 같다.
mysqldump 파일을 생성하는 방식이다. 필자의 경우 root 로 접속을 해서 했으며, 해당 DB에 대한 권한이 있을 경우에는 그냥 해당 권한의 계정으로 접속하면 된다.
명령어는 다음과 같다.
mysqldump -u 계정 -p 백업할디비 > 백업한디비의파일명.sql |
그럼 C드라이브 경로의 하위단에 내용이 있는 것을 확인할 수 있다.
백업 복구에 대한 내용을 간단히 진행해봤다.
번외로... 필자가 원래 파일을 run script 를 통해서 데이터를 기존 데이터베이스에 밀어넣으려고 해봤다...
하지만...
새로 설치한 DB의 버전이 일치하지 않는지.... 계속 character set 에러가 표기가 되드라...
문구를 봤을 때에는 분명 utf-8 즉, 한글때문에 깨지는 현상인데... 그럼 이걸 어떻게 해야하는지 열심히 확인해봤다..
my.ini 파일도 바꾸고... 하지만 별짓거리를 해도 workbench 상으로는 insert가 안되드라..
그리고 workbench상에서는 character set도 utf8mb3였다... 왜 안되는지 모르겠다...아시는분 있으면 댓글로 알려주면 감사하겠습니다...
그래서.. 그냥 필자는... 서버에 붙어서 직접 커맨드를 날렸다...
source 경로\파일명.sql |
cmd상으로 명령어를 날리니까 정상적으로 되드라...
'IT > MySQL' 카테고리의 다른 글
Mysql Authentication protocol requested by server; (0) | 2022.06.14 |
---|---|
Windows MySQL 외부 접속 허용 (0) | 2022.06.10 |