如何用触发器和程序导出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