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

Yug*_*gal 75 mysql mysqldump

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

Hai*_*vgi 108

mysqldump将备份默认情况下所有的触发器,但不是存储过程/函数.有2个mysqldump参数可以控制此行为:

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

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

mysqldump <other mysqldump options> --routines > outputfile.sql
Run Code Online (Sandbox Code Playgroud)

在本文中阅读更多内容


Usm*_*man 19

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

mysqldump --routines=true -u <user> my_database > my_database.sql
Run Code Online (Sandbox Code Playgroud)


Kri*_*ula 5

我创建了以下脚本,它对我来说很好。

#! /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*
Run Code Online (Sandbox Code Playgroud)

然后使用命令行参数调用脚本。

backupdb.sh my_db dev_user dev_password
Run Code Online (Sandbox Code Playgroud)