すべてのトリガーとプロシージャでmysqlデータベースをエクスポート/ダンプする方法。
mysqldump
は、defaultすべてのtriggersをバックアップしますが、[〜#〜] not [〜#〜]ストアドプロシージャ/関数。この動作を制御する2つのmysqldumpパラメーターがあります。
--routines
–デフォルトでFALSE--triggers
–デフォルトでTRUEしたがって、mysqldump
コマンドで、--routines
好む :
mysqldump <other mysqldump options> --routines > outputfile.sql
この記事で more を読む
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