如何使用所有触发器和过程导出/转储mysql数据库。
答案 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