옵션이있는 명령 줄에서 .sql 파일을 내보내고 가져 오는 방법은 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
- 커맨드 라인 10 답변 에서 MySQL 덤프 다운로드
- MySQL의 명령 줄을 사용하여 SQL 파일을 가져 오려면 어떻게합니까? 답변 45 개
중복되지 않습니다! 커맨드 라인에서 내보내는 동안 phpmyadmin이있는 기능 찾기
명령 줄 에서 .sql 파일을 MySQL 데이터베이스로 내보내거나 가져오고 싶습니다 .
MySQL에서 .sql 파일을 내보내는 명령이 있습니까? 그런 다음 어떻게 가져 옵니까?
내보내기 / 가져 오기를 수행 할 때 외래 키 검사 활성화 / 비활성화 또는 테이블 구조 만 내보내기 와 같은 제약 조건 이있을 수 있습니다 .
이 옵션 을 mysqldump
?로 설정할 수 있습니까 ?
옵션의 예
SQL 데이터 파일을 가져 오려면 다음 명령을 입력하십시오.
$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql
이 예에서는 vivek을 사용자 이름으로 사용하여 'data.sql'파일을 'blog'데이터베이스로 가져옵니다.
$ mysql -u vivek -p -h localhost blog < data.sql
전용 데이터베이스 서버가있는 경우 다음과 같이 localhost 호스트 이름을 실제 서버 이름 또는 IP 주소로 바꾸십시오.
$ mysql -u username -p -h 202.54.1.10 databasename < data.sql
데이터베이스를 내보내려면 다음을 사용하십시오.
mysqldump -u username -p databasename > filename.sql
각각의 경우 <
및 >
기호에 유의하십시오 .
이미 SQL 셸을 실행중인 경우 source
명령을 사용하여 데이터를 가져올 수 있습니다.
use databasename;
source data.sql;
mysqldump는 개별 데이터베이스를 덤프 할 때 명시 적으로 언급하지 않는 한 데이터베이스 이벤트, 트리거 및 루틴을 덤프하지 않습니다.
mysqldump -uuser -p db_name --events --triggers --routines > db_name.sql
아래 명령을 사용하여 내보낼 수 있습니다.
mysqldump --database --user = root --password your_db_name> export_into_db.sql
생성 된 파일은이 명령을 실행 한 동일한 디렉토리에서 사용 가능합니다.
이제 명령을 사용하여 mysql에 로그인하십시오.
mysql -u [사용자 이름] -p
그런 다음 파일 경로와 함께 "source"명령을 사용하십시오.
시험
mysqldump databaseExample > file.sql
전체 데이터베이스를 파일로 덤프하십시오.
mysqldump -u USERNAME -p password DATABASENAME > FILENAME.sql
가장 높은 게시물 이후에 언급 할만한 명성이 없기 때문에 여기에 추가합니다.
'|'사용 디스크 공간을 절약하기 위해 리눅스 플랫폼에서.
thx @Hariboo, 이벤트 / 트리거 / 라우 틴 매개 변수 추가
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";
866 번 라인의 ERROR 2006 (HY000) : MySQL 서버가 mysqldump를 사라졌습니다 : 쓰기시 errno 32를 얻었습니다
# 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
32730 행 오류 1419 (HY000) : SUPER 권한이없고 2 진 로깅이 사용 가능합니다 ( 덜 안전한 log_bin_trust_function_creators 변수를 사용하려고 할 수 있습니다 )
# set SET GLOBAL log_bin_trust_function_creators = 1;
# or use super user import data
138 번째 줄에서 오류 1227 (42000) : 액세스가 거부되었습니다. 이 작업 mysqldump에 대한 SUPER 권한이 (적어도 하나 이상) 필요합니다.
# add sed/awk to avoid some privilege issues
이 도움을 바랍니다!
이 스크립트를 사용 하여 다음 링크에 제공된 터미널에서 데이터베이스 를 내보내거나 가져올 수 있습니다. https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if [ "$action" == "export" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read -p 'Give the name of database in which you would like to export: ' db_name
read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
read -p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name < $sql_file
else
echo "please select a valid command"
fi
'Programing' 카테고리의 다른 글
Android : listView 클릭시 강조 표시 비활성화 (0) | 2020.03.17 |
---|---|
JavaScript에서 창 크기 조정 이벤트를 트리거하는 방법은 무엇입니까? (0) | 2020.03.17 |
비동기 작업을 동 기적으로 대기하는 이유와 여기서 Wait ()가 프로그램을 정지시키는 이유 (0) | 2020.03.17 |
언제 클래스 대신 구조체를 사용해야합니까? (0) | 2020.03.17 |
C ++ 코드는 C ++ 03 및 C ++ 11에서 모두 유효하지만 다른 작업을 수행 할 수 있습니까? (0) | 2020.03.17 |