如何备份 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 中的存储过程的主要内容,如果未能解决你的问题,请参考以下文章