MysqlDump: Database Dump Script 만들기

여러분들이 이때까지 작업하신 데이터베이스를 DDL+DML Script 형태로 출력하는 방법을 소개해드립니다.

과제 아닙니다 :)

1. mysqldump 이용해보기

2019KU0080@dossa0328-18078:~$ cd                
2019KU0080@dossa0328-18078:~$ pwd                                                 
/home/db2019/2019KU0080                                                           

2019KU0080@dossa0328-18078:~$ mysqldump -u db2019KU0080 db2019KU0080 -p > dump.sql                      
Enter password: ***********
mysqldump: Couldn't execute 'SHOW FIELDS FROM `cnt_class`': View 'db2019KU0080.cnt_class' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)                  
2019KU0080@dossa0328-18078:~$ ls                            
dump.sql  public_html

2019KU0080@dossa0328-18078:~$ head dump.sql                                                                                         -- MySQL dump 10.15  Distrib 10.0.38-MariaDB, for debian-linux-gnu (x86_64)                                                         --                                      
-- Host: localhost    Database: db2019KU0080                                                                                                                                     
-- ------------------------------------------------------                                                                           -- Server version       10.0.38-MariaDB-0ubuntu0.16.04.1
/*!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 */;

2. Debugging

mysqldump: Couldn't execute 'SHOW FIELDS FROM `cnt_class`':
 View 'db2019KU0080.cnt_class' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)  

dump 명령 후에 발생하는 위와 같은 에러는 주로 View를 등록한 후 View가 Referencing하고 있는 테이블 (즉, 피연산자 테이블)을 삭제하거나 컬럼을 삭제하는 경우에 발생합니다. invalid한 View를 삭제해주신 후 mysqldump를 수행하시면 정상적으로 dump.sql 만드실 수 있을 겁니다. 에러가 발생하면, 그 이후로는 dump가 진행되지 않으니 반드시 에러를 모두 잡아주셔야합니다.