如何使用触发器和程序导出MySQL数据库?

时间:2011-02-22 07:18:34

标签: mysql mysqldump

如何使用所有触发器和过程导出/转储mysql数据库。

3 个答案:

答案 0 :(得分:98)

mysqldump将通过默认备份所有触发器,但 存储过程/函数 。有两个mysqldump参数可以控制这种行为:

  • --routines - 默认为FALSE
  • --triggers - 默认为TRUE

所以在mysqldump命令中添加--routines,如:

mysqldump <other mysqldump options> --routines > outputfile.sql

在本文中阅读more

答案 1 :(得分:16)

对于MYSQL的专家用户来说可能是显而易见的,但是我试图找出默认值不会导出函数时浪费了一些时间。所以我想在这里提一下, - 例程 param需要设置为true才能使其正常工作。

mysqldump --routines=true -u <user> my_database > my_database.sql

答案 2 :(得分:4)

我已经创建了以下脚本,它对我很有用。

#! /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