我执行了以下命令:
mysqldump -u root db_name --add-drop-database --routines --verbose > db_name.sql 2>db_name.log
Run Code Online (Sandbox Code Playgroud)
但是当我检查sql文件内容时,没有存储过程创建语法。我还检查了日志文件并收到了相同的结果。
有人知道这个问题的根本原因是什么吗?我已经用谷歌搜索并找到了这个https://github.com/sequelpro/sequelpro/issues/517。但仍然没有解决办法。
仅供参考,我正在使用 MariaDB 10.2。
您可能缺少权限:
\n\n\n\n\xc2\xb7 --例程,-R
\n\n在输出中包含转储数据库的存储例程(过程和函数)。使用此选项需要 mysql.proc 表的 SELECT 权限。使用 --routines 生成的输出包含用于重新创建例程的 CREATE PROCEDURE 和 CREATE FUNCTION 语句。但是,这些语句不包括例程创建和修改时间戳等属性。这意味着当重新加载例程时,将使用等于重新加载时间的时间戳来创建它们。
\n\n如果您需要使用原始时间戳属性重新创建例程,请不要使用 --routines。相反,使用对 mysql\n 数据库具有适当权限的 MariaDB 帐户直接转储并重新加载 mysql.proc 表的内容。
\n
| 归档时间: |
|
| 查看次数: |
5589 次 |
| 最近记录: |