【问题标题】:MySql Restoring issue:Stored procedure not RestoredMySql 恢复问题:存储过程未恢复
【发布时间】:2013-07-30 04:30:48
【问题描述】:

我有一个包含所有例程的 MySQL 转储。当我恢复时,只有存储过程没有恢复。我使用 Dump 的 MySQL 版本是 5.0.77-log,我恢复到的版本是 5.6.12。

任何帮助表示赞赏。

谢谢

【问题讨论】:

  • 您是否收到任何错误消息?

标签: mysql stored-procedures mysqldump restore


【解决方案1】:

服务器主机是否已更改,?我的意思是您是将数据库从一台主机移植到另一台主机还是在不同数据库中的同一主机上尝试。

b/c 如果您将 db 从一台服务器更改为另一台服务器,那么您必须在存储过程中更改您的定义器(如果已定义)。“定义器”就像 DEFINER = 'admin'@ sp中的'localhost', .

在你的存储过程中检查这个。如果不是问题,请告诉我。More about definer...

【讨论】:

  • 是的,服务器主机已更改。我尝试通过添加定义器中指定的用户并尝试仅恢复例程,但出现类似“此版本的 MySQL 尚不支持”多个触发器的错误一张桌子的相同动作时间和事件'
  • 可能是,你在一个表上应用了多个触发器,但是mysql不支持这个直到mysql 5.7。检查这个,check bug link on mysql
【解决方案2】:

我来到这里是因为我的 Mariadb 存储过程和函数都不会恢复(手动运行转储文件中的 SQL)它只是在所有过程和函数上出错。我更换了分隔符;;这是用 $$ 在我的文件中设置的,它会恢复。恢复的表和视图没有任何问题。备份确实移动了主机,我还更改了定义器,因为它更改了用户/IP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2021-09-14
    • 1970-01-01
    • 2019-10-06
    • 2012-03-04
    • 2020-06-15
    相关资源
    最近更新 更多