MariaDB/MySQL mysqldump 옵션정리
Posted 2016. 3. 19. 22:05MyriaDB는 태생이 MySQL이라서 아직까지는 mysql명령어를 그대로 사용한다.
테스트를 위한 database 및 user를 생성합니다.
-- utf8옵션으로 데이터베이스를 생성합니다.
create database org_db default character set utf8 collate utf8_general_ci;
create database target_db default character set utf8 collate utf8_general_ci;
-- 사용자를 생성합니다.
create user 'test_user'@'%' identified by 'test_password';
-- 사용자에게 생성한 DB 접근권한을 부여합니다. 모든 권한을 다 줍니다. 세부권한에 대한 옵션은 별도 참조
-- 참고로 권한을 제거하는 명령어는 revoke 입니다.
grant all privileges on org_db.* to 'test_user'@'%';
grant all privileges on target_db.* to 'test_user'@'%';
flush privileges;
참고 : http://durst.tistory.com/183
테스트를 위한 org_db에 테이블도 몇개 만들고 데이터를 넣어둡니다.
use org_db;
create table t1( id varchar(10), nm varchar(20), reg_dttm datetime );
insert into t1 values ('a1', '테스트', now() ),('a4', '테스트4', now() ),('a2', '테스트2', now() ),('a3', '테스트3', now() );
create table t2( id varchar(10), nm varchar(20), reg_dttm datetime );
insert into t2 values ('a1', '테스트', now() ),('a4', '테스트4', now() ),('a2', '테스트2', now() ),('a3', '테스트3', now() );
create table t3( id varchar(10), nm varchar(20), reg_dttm datetime );
insert into t3 values ('a1', '테스트', now() ),('a4', '테스트4', now() ),('a2', '테스트2', now() ),('a3', '테스트3', now() );
이제 mysqldump 를 사용해 봅니다.
--org_db 전체를 dump합니다.
mysqldump -h 192.168.0.245 -u test_user -ptest_password org_db > org_db_all.sql
-- password는 -p옵션뒤에 바로 붙입니다. 띄어쓸경우 비밀번호가 아닌 database명으로 인식합니다.
-- 데이터 없이 구조만 가져오고 싶을때는 no-data 옵션을 사용
mysqldump -h 192.168.0.245 -u test_user -ptest_password org_db --no-data > org_db_all_structure.sql
-- org_db에 있는 특정테이블만 dump 합니다.
mysqldump -h 192.168.0.245 -u test_user -ptest_password org_db t1 t2 > org_db_t1_t2.sql
--add-drop-database, --add-drop-table 은 drop database, drop table 구문을 사용하지 않습니다.
--no-create-db, --no-create-info 는 위의 옵션과 함께 사용하는데, create database, create table 구문을 사용하지 않습니다.
다만 no-create-info를 사용할 경우 view는 dump를 받을수 없게 되니 유의.
--skip-add-locks --single-transaction --skip-lock-tables 는 dump 시 lock을 걸지 않고 실시합니다.
운영중인 db에서 dump를 하고자 할때 사용합니다.
참고 : http://intomysql.blogspot.kr/2010/12/mysqldump.html
dump 받은 데이터가 utf-8이 아니라면 utf-8로 변환합니다.
mysql\ iconv -f latin1(source db 인코딩) -t UTF-8(target db 인코딩) dump.sql > newdump.sql
테이블이나 데이터를 동일 host의 접근가능한 database에 복사하려고 하는 경우엔 굳이 dump를 받지 않고 create&select, insert&select를 해도 됩니다.
참고 : http://ra2kstar.tistory.com/109
'DBMS > MySQL' 카테고리의 다른 글
MySQL 5.7 root 패스워드 분실시 복구방법 (0) | 2018.05.02 |
---|---|
centos 6.9 mysql 5.7 설치 (0) | 2017.08.15 |
mysql 캐리지 리턴, 엔터 replace 처리 (0) | 2015.02.12 |
테이블 컬럼 Optimize 하기 (using PROCEDURE ANALYSE ) (0) | 2012.11.08 |
첨부]MySQL 함수 및 연산자 모음표 (0) | 2012.11.08 |
- Filed under : DBMS/MySQL