.sql
모든 트리거 및 절차 를 사용하여 MySQL 데이터베이스 덤프 ( 파일) 를 만드는 방법은 무엇입니까?
답변
mysqldump
에 의해 의지 백업 기본 모든 트리거 하지만 NOT 저장 프로 시저 / 함수 . 이 동작을 제어하는 2 개의 mysqldump 매개 변수가 있습니다.
--routines
– 기본적으로 FALSE--triggers
– 기본적으로 TRUE
그래서 mysqldump
명령에서 다음 --routines
과 같이 추가하십시오 .
mysqldump <other mysqldump options> --routines > outputfile.sql
mysqldump 인수에 대한 MySQL 문서를 참조하십시오 .
답변
MYSQL의 전문 사용자에게는 분명 할 수 있지만 기본값이 기능을 내 보내지 않는지 파악하는 동안 시간을 낭비했습니다. 그래서 여기에서 –routines param이 작동하도록하려면 true로 설정해야 한다고 언급 하려고했습니다.
mysqldump --routines=true -u <user> my_database > my_database.sql
답변
다음 스크립트를 만들었으며 잘 작동했습니다.
#! /bin/sh
cd $(dirname $0)
DB=$1
DBUSER=$2
DBPASSWD=$3
FILE=$DB-$(date +%F).sql
mysqldump --routines "--user=${DBUSER}" --password=$DBPASSWD $DB > $PWD/$FILE
gzip $FILE
echo Created $PWD/$FILE*
명령 줄 인수를 사용하여 스크립트를 호출합니다.
backupdb.sh my_db dev_user dev_password