小编Sha*_*aun的帖子

在将 MySQL 从 5.0.* 升级到 5.1.* 后解决 mysql.proc 的问题

像许多其他人一样,我们将 MySQL 实例从 5.0.* 升级到 5.1.49。从那以后,我们遇到了一个错误,当我们执行某些操作时它会重复:

  • 试图查看或运行存储过程
  • 在为 ON INSERT 操作添加触发器后尝试插入表
  • 正在执行SELECT LENGHT(description), id FROM table(拼写错误......LENGTH拼写正确时,错误未显示)

有问题的错误:

mysql.proc 的列数错误。预期为 20,发现为 16。该表可能已损坏。

已被报告为错误(基本上,缺乏向后兼容性),但似乎对如何解决此问题有些困惑:

  • MySQL 的文档说解决方案是在升级到 5.1 后再次转储您的存储过程,然后再次恢复它们。我之前提到的错误报告表明这有可疑的结果。
  • 错误报告建议将运行mysql_upgrade作为可能的解决方案(尽管有一些有关警告)。然而,据其他地方报道,这种解决方案并不总是有效。

不幸的是,我没有一个测试盒来测试可能的解决方案,因为我们的开发盒正在等待操作系统升级,以允许我们安装我们想要安装的 MySQL 版本。我不愿意在我们的生产环境中尝试任何解决方案,除非遇到这个问题的人已经验证它可以工作。

除了等待 MySQL 的官方补丁或解决方案之外,解决此问题的正确方法是什么?

虽然丢失我们的存储过程并不理想,但它也是我们愿意采取的解决问题的途径,前提是没有更好的替代方案并且可以干净利落地解决问题。

mysql mysql-5 stored-procedures

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

mysql ×1

mysql-5 ×1

stored-procedures ×1