如何在MySQL中备份存储过程

21

我使用MySQL 5.0和mysqldump每天备份数据,但不理解只有存储过程如何进行备份。

如何进行备份?

3个回答

47

我不确定你是要备份存储过程以及其他所有内容,还是仅备份存储过程本身...

将存储过程与其他内容一起转储:

mysqldump -R <dbname> #or
mysqldump --routines <dbname>

仅限存储过程:

mysqldump -n -t -d -R <dbname> #or
mysqldump --no-create-db --no-create-info --no-data --routines <dbname>

这有帮助吗?

1
在我的版本的mysqldump(mysqldump Ver 10.13 Distrib 5.1.69,适用于debian-linux-gnu(x86_64)),至少应该是-R,而不是-r。从文档中可以看到:-R,--routines 转储存储过程(函数和过程)。-r,--result-file=name 将输出直接定向到给定文件。此选项应在MSDOS中使用,因为它可以防止新行“\n”被转换为“\r\n”(回车+换行)。 - davej
1
@davej 好观点 - 我想我不知道怎么错过了。 (我希望我测试了它,但我想不是...)感谢提醒。 - Stobor
DOS>mysqldump -uroot -p -n -t -d -R test > test_procs.sqlDOS>mysqldump -uroot -p -n -t -d -R test > test_procs.sql - Park JongBum

0
您还可以在my.cnf文件的[mysqldump]部分中添加routines=true(如果在原始的my.cnf文件中没有这个部分,则需要手动添加),以便在普通转储中包含例程。

0
mysqldump - u dbusername (ex: -uroot) -ppassword (ex:-pmysql@dbpas) --routines <dbname>

使用用户名和密码可能更有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接