如何备份 MySQL 中的存储过程

Posted

技术标签:

【中文标题】如何备份 MySQL 中的存储过程【英文标题】:How to backup stored procedures in MySQL 【发布时间】:2010-10-27 05:50:45 【问题描述】:

我用mysqldump和MySQL 5.0,我每天都备份它,但不明白只有存储过程备份的方法。

如何备份?

【问题讨论】:

【参考方案1】:

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

与其他所有内容一起存储在转储中:

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>

这有帮助吗?

【讨论】:

在我的 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 好点——我想我错过了。 (我想我已经测试过了,但我想没有……)感谢您的说明。 DOS>mysqldump -uroot -p -n -t -d -R test > test_procs.sql【参考方案2】:

您也可以将routines=true 放入您的my.cnf 文件的[mysqldump] 部分(您可能必须添加此部分,因为它通常不存在于原始my.cnf 文件中)以将例程包含在正常的转储。

【讨论】:

【参考方案3】:
mysqldump - u dbusername (ex: -uroot) -ppassword (ex:-pmysql@dbpas) --routines <dbname>

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

【讨论】:

以上是关于如何备份 MySQL 中的存储过程的主要内容,如果未能解决你的问题,请参考以下文章

MySQL备份还原存储过程事务及周边

备份mysql函数和存储过程

mysql学习之路_事物_存储过程_备份

Mysql 之 视图,触发器,存储过程,函数,事物,数据库锁,数据库备份

求高人帮忙写一下存储过程

mysql中如何创建存储过程