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

相关推荐

  • KeyDB: 一款比 Redis 性能更强的分布式数据库

    eyDB 是一个开源的,高性能的,多线程的内存键值存储。它是流行的 Redis 数据库的分支版本,完全兼容 Redis 命令和数据类型。KeyDB 提供了很多的高级功能,如 Lua 脚本,LRU 淘汰和命令的并行执行。它是为企业环境构建的,提供高可用性和集群支持。KeyDB 也针对速度进行了优化,基准测试表明它是可用的键值存储之一。总的来说,KeyDB 是内…

    2023年6月28日
    1.1K00
  • mysql的主从延迟问题主要原因及解决

    MySQL数据库主从的安装搭建方法 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用主从复制。 比如:在复杂的业务系统中,有一句sql执行后导致锁表,并且这条sql的的执行时间有比较长,那么此sql执行的期间导致服务不可用,这样就会严重影响用户的体验度。 主从复制中分为主服务器(master)和从服务器(slave)…

    2022年6月14日
    1.5K00
  • root用户无法访问Mysql数据库问题的解决

    在使用Centos系统远程访问Mysql数据库的时候,系统提示报如下错误: 经过验证以下方案可以解决问题: 1.首先停止mysql服务器 2.无权限启动mysql服务 3..登录mysql 4..重新载入权限 5.. 选择系统数据库mysql 6..查询系统表user中的用户 7.向root用户赋值权限

    2023年6月20日
    86600
  • Sql Server数据库显示中文乱码的解决方案

    .数据库中文乱码原因 1. 一种情况是实际生产环境的电脑并不支持中文语言,但是数据库的数据表里面,有些说明字段需要用中文显示,这个时候就出现了乱码了 2. 另外一种情况是,安装数据库的时候,使用的是默认的编码规则。这个时候如果电脑本身就不支持中文语言。然后数据库表里面录入中文,也会出现乱码。支持中文的电脑,安装使用默认的选项,数据表录入中文,好像没有出现过乱…

    2023年2月18日
    91100
  • 关于mysql now()显示的时间不正确

    如果MySQL中的NOW()函数返回的时间不正确,可能有以下几个原因: 时区设置不正确。请使用SELECT @@global.time_zone;命令检查MySQL服务器的全局时区设置,并确保它与你所在地区的时区匹配。如果时区设置不正确,请使用SET GLOBAL time_zone = ‘timezone’;命令进行更正。 系统时间…

    2023年8月22日
    1.4K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信