如何用触发器和程序导出MySQL数据库?
如何导出/转储mysql数据库与所有触发器和过程。
mysqldump
将默认备份所有的触发器,但不是 存储过程/函数 。 有2个mysqldump参数来控制这个行为:
- –
--routines
– 默认为FALSE -
--triggers
– 默认为TRUE
所以在mysqldump
命令中,添加 – --routines
如下:
mysqldump <other mysqldump options> --routines > outputfile.sql
阅读更多的这篇文章
对于MYSQL的专家用户来说可能是显而易见的,但是我却浪费了一些时间,试图弄清楚默认值不会导出函数。 所以我想在这里提到的是 – 常量参数需要被设置为true来使其工作。
mysqldump --routines=true -u <user> my_database > my_database.sql
我创build了下面的脚本,它对我来说工作得很好。
#! /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