Programing

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

lottogame 2020. 3. 17. 08:30
반응형

옵션이있는 명령 줄에서 .sql 파일을 내보내고 가져 오는 방법은 무엇입니까? [복제]


중복되지 않습니다! 커맨드 라인에서 내보내는 동안 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

참고 URL : https://stackoverflow.com/questions/11407349/how-to-export-and-import-a-sql-file-from-command-line-with-options

반응형