如何创建.sql
带有所有触发器和过程的MySQL数据库转储(文件)?
Answers:
mysqldump
通过将备份默认情况下所有的触发器,但不是在存储过程/函数。有2个mysqldump参数控制此行为:
--routines
–默认为FALSE--triggers
–默认为TRUE所以在mysqldump
命令中,添加--routines
如下:
mysqldump <other mysqldump options> --routines > outputfile.sql
请参阅有关mysqldump参数的MySQL文档。
-routines
代替--routines
?
--routines
但是仅在用户对mysql.proc
表具有足够的访问权限时有效。GRANT SELECT ON mysql.proc TO '<user>'@'localhost';
我创建了以下脚本,它对我来说很好。
#! /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