[mysql] 트리거 및 절차를 사용하여 MySQL 데이터베이스를 내보내는 방법은 무엇입니까?

.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


답변