import / export
mysqldump -uUSERNAME -pPASSWORD -hHOSTNAME USER_DATABASE > FILENAME.sql
Then import using:
mysql -uUSERNAME -pPASSWORD -hHOSTNAME USER_DATABASE < FILENAME.sql
cd /usr/local/mysql/bin
./mysql -u root -p
mysql> SELECT User, Host, Password FROM mysql.user;
1. create user [계정]
2. set password for [계정]=password('password');
-----------------------------------------
Q&A
- Database 를 하나 더 생성하여 복사하려고 합니다. 현재 구조와 테이블은 복사가 되어 적용 되었지만 데이터는 복사가 되지 않아서 질문드립니다.
사용 명령어
export ./mysqldump -u inuser -p pass1234 TEST1 > db_03.sql
import ./mysql -u inuser -p TEST2 < db_03.sql
데이터도 다 옮기려면
export ./mysqldump -u inuser -p pass1234 TEST1 -a > db_03.sql
-a 옵션 추가
주요 옵션
옵션 | 의미 | Default | 비고 |
---|---|---|---|
옵션 | 의미 | Default | 비고 |
-A, --all-databases | 모든 db dump | ||
--databases | dump 할 db 명 기술하면 해당 db 만 dump | ||
--add-drop-database | DROP DATABASE 구문 추가하여 create database 전에 기존 database 삭제 | 기존 데이타가 삭제되니 주의 | |
--add-drop-table | DROP TABLE 구문 추가하여 table 생성전 기존 table 삭제 | drop table 을 제외하려면 --skip-add-drop-table 옵션 사용 | |
-l, --lock-tables | Lock all tables for read. | --skip-lock-tables 로 제외가능. 이 옵션보다는 아래의 --single-transaction 사용 추천 | |
--single-transaction | lock 을 걸지 않고도 dump 파일의 정합성 보장 | InnoDB 일때만 사용 가능 | |
--ignore-table | 제외할 테이블명을 주면 dump에서 제외 | 여러개의 테이블을 제외할 경우 테이블명마다 앞에 --ignore-table 옵션을 주어야 함. , 로 여러개의 테이블을 주어도 한 테이블만 처리 | |
--no-create-db | CREATE DATABASE 구문 제외 | dump한 파일을 load 하려는 환경의 database 명이 다를 경우 유용함 | |
--max_allowed_packet | 서버와 주고 받을 최대 패킷 사이즈 설정 | 1M | 첨부파일등이 DB 에 있을 경우 이 값을 크게 해야 한다. mysqldump: ‘max_allowed_packet’ 에러 처리참고 |
--triggers | trigger 도 dump | --skip-triggers 로 제외할 수 있음 | |
--routines | stored procedure 와 function 도 dump | MySQL 5 는 trigger는 기본적으로 덤프하나 function, procedure는 덤프하지 않음 |
참고 : https://www.lesstif.com/pages/viewpage.action?pageId=17105804