MySQL : 명령 줄에서 .sql 파일을 내보내고 가져 오는 방법은 무엇입니까?


Answers

SQL 데이터 파일을 가져 오려면 다음 명령을 입력하십시오.

$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

이 예에서는 vivek를 username으로 사용하여 'data.sql'파일을 '블로그'데이터베이스로 가져옵니다.

$ mysql -u vivek -p -h localhost blog < data.sql

전용 데이터베이스 서버가있는 경우 다음과 같이 localhost hostname을 실제 서버 이름 또는 IP 주소로 바꿉니다.

$ mysql -u username -p -h 202.54.1.10 databasename < data.sql

데이터베이스를 내보내려면 다음을 사용하십시오.

mysqldump -u username -p databasename > filename.sql

각 경우에 <> 기호를 적어 두십시오.

Question

MySQL 데이터베이스에서 .sql 파일을 내보내고 명령 줄에서 가져 오려고합니다.

MySQL에서 .sql 파일을 내보내는 명령이 있습니까? 그렇다면 어떻게 가져올 수 있습니까?

가져 오기를 수행 할 때 외래 키 검사 사용 또는 사용 안 함, 테이블 구조 만 내보내기 등의 제약이있을 수 있습니다.

mysqldump 이러한 옵션 을 설정할 수 있습니까?




가장 큰 게시물 이후에 논평할만한 명성이 없기 때문에 여기에 추가합니다.

'|'사용 리눅스 플랫폼에서 디스크 공간을 절약 할 수 있습니다.

thx @ Hariboo, events / triggers / routints 매개 변수 추가

mysqldump -x -u [uname] -p[pass]  -C --databases db_name  --events --triggers --routines | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/ '  | awk '{ if (index($0,"GTID_PURGED")) { getline; while (length($0) > 0) { getline; } } else { print $0 } }'  | grep -iv 'set @@' | trickle -u 10240 mysql -u username -p -h localhost DATA-BASE-NAME

몇 가지 문제 / 팁 :

오류 : ...... LOCK TABLES 사용시 존재하지 않습니다.

# --lock-all-tables,-x , this parameter is to keep data consistency because some transaction may still be working like schedule.
# also you need check and confirm: grant all privileges on *.* to root@"%" identified by "Passwd";

오류 2006 (HY000) 줄 866에서 : MySQL 서버가 사라졌습니다 mysqldump : 쓰기시 32 errno가되었습니다.

# set this values big enough on destination mysql server, like: max_allowed_packet=1024*1024*20
# use compress parameter '-C'
# use trickle to limit network bandwidth while write data to destination server

오류 1419 (HY000) at 32730 행 : SUPER 권한이없고 바이너리 로깅을 사용할 수 있습니다 (덜 안전한 log_bin_trust_function_creators 변수를 사용하려고 할 수 있습니다 )

# set SET GLOBAL log_bin_trust_function_creators = 1;
# or use super user import data

ERROR 1227 (42000) at line 138 : 액세스가 거부되었습니다. mysqldump : 쓰기시 errno 32를 얻는다. (적어도 하나)이 작업을위한 SUPER 권한이 필요하다.

# add sed/awk to avoid some privilege issues

이 도움이되기를 바랍니다!




전체 데이터베이스를 파일에 덤프하십시오.

mysqldump -u USERNAME -p password DATABASENAME > FILENAME.sql



시험

mysqldump databaseExample > file.sql



Links