我执行了以下命令:
mysqldump -u root db_name --add-drop-database --routines --verbose > db_name.sql 2>db_name.log
但是当我检查sql文件内容时,没有存储过程创建语法。我还检查了日志文件并收到了相同的结果。
任何人都知道这个问题的根本原因是什么?我已经用Google搜索了这个https://github.com/sequelpro/sequelpro/issues/517。但仍然没有解决方法。
仅供参考,我使用的是MariaDB 10.2。
答案 0 :(得分:1)
您可能缺少权限:
· - routines,-R
在输出中包含已转储数据库的存储例程(过程和函数)。 使用此选项需要mysql.proc表的。使用--routines生成的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建例程。但是,这些语句不包括例程创建和修改时间戳等属性。这意味着当重新加载例程时,将创建时间戳等于重新加载时间。
如果需要使用原始时间戳属性重新创建例程,请不要使用--routines。相反,使用具有适当的mysql权限的MariaDB帐户直接转储并重新加载mysql.proc表的内容 数据库中。