1558 -Column count ot mysql.proc 1s wrong.Expected 20,found 16.Created with MySQL50096, now running 50525. Please use mysql_upgrade to fix this error.

我在MySQL版本5.5上面创建存储过程的时候就出现了上面的错误。甚至使用show procedure status 查看存储过程都会报上面的错误。

注意操作前先备份!!!

错误原因:
是由于你曾经升级过MySQL,或用不同的MySQL版本进行备份迁移恢复。升级和迁移完后未使用mysql_upgrade升级数据结构造成的。

mysql.proc:
是MySQL的系统表,用来记录存储过程或函数的信息。使用desc mysql.proc 查看上面不同版本的MySQL的mysql.proc,果然出错的MySQL的mysql.proc只有16列。

解决办法:
使用命令:mysql_upgrade -u[username] -p[password]就可以解决。

但是修复完成之后又有另一个报错 1577 – Cannot proceed because system tables used by Event Scheduler were founddamaged at server start

使用 MySQL 自带工具修复: MySQL 提供了一些工具用于修复和检查数据库表。使用 mysqlcheck 工具检查并修复表。例如

mysqlcheck -u your_username -p --repair --all-databases

替换 your_username 为你的 MySQL 用户名。你将被提示输入密码。请注意,这可能需要一些时间,具体取决于数据库的大小和复杂性。

手动修复表: 如果 mysqlcheck 无法解决问题,你可能需要手动修复表。这可能包括使用 REPAIR TABLE 语句修复特定的表。例如:

REPAIR TABLE your_table_name;

替换 your_table_name 为受影响的表的名称。

注意操作前先备份!!!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10653

(0)
凯影的头像凯影
上一篇 2023年12月20日 下午3:27
下一篇 2023年12月21日 下午3:11

相关推荐

  • DM工作笔记-在windows下对DM7进行库还原&恢复

    提供了这些备份数据 在windows平台上,将这些备份数据还原到新库中。 首先实例得先停掉: 使用的软件console.exe: 重要步骤:①获取备份;②还原;③恢复 记住DMAP方式这个不要勾选,然后再获取备份,再还原,再恢复。 还原使用库还原的形式做: 然后再启动实例就可以了。

    2023年12月27日
    1.3K00
  • Mysql备份策略(windows版Mysql)图文详解

    1.建立备份BAT文件脚本 脚本保存未bat文件,放在备份文件夹中。 2.设置定时任务进入定时任务界面,创建任务: 设置触发器,凌晨为比较合适备份时间,系统负载小 操作设置执行刚刚编写的BAT处理脚本 条件设置 最后设置选项 3.灾备编写COPY脚本将备份的文件复制到备份储存盘中BAT脚本内容: 设置定时任务

    2022年8月5日
    1.5K00
  • MySQL 用户管理和权限管理

    在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理。一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等,这样方便管理。当然,具体怎么管理权限根据实际情况来确定。无论如何,都需要创建多个用户来管理权限。root 是数据库的超级管理员用户,对于普通开发人员来说,权限太大了,如果不小心做了一些不可逆…

    2022年6月9日
    1.6K00
  • 数据库报错:Cause com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure

    原因1.因为SSL连接原因(大部分人的原因)因为MySQL在高版本需要指明是否进行SSL连接。有可能你 pom 文件引入的 MySQL 依赖版本是MySQL5.7及以上 这些的时候,你就需要指定SSL连接,如果你不知道,默认就是开启,所以就会出现上面的错误。 2.因为数据库连接超时原因当数据库重启或数据库空闲连接超过设置的最大timemout时间,数据库会强…

    2023年8月1日
    1.0K00
  • mysql误删数据后,从binlog中进行恢复删除数据

    从mysql的logbin中恢复误删数据在一次数据维护过程中,对数据删除时没有提前备份数据,导致数据被删除后无法通过备份文件直接恢复。 1.查找当前操作的binlog状态在myql命令行或者链接工具中,命令查看binlog当前的位置状态和文件信息。 2.flush logs刷新状态 在myql命令行或者链接工具中,使用flush logs命令重新生成新的bi…

    2023年7月29日
    1.0K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信