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

相关推荐

  • 解决Redis、MySQL缓存双写不一致问题

    redis、mysql双写缓存不一致: 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。 正文 给缓存数据设置过期时间 先做一个说明,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过…

    2022年8月21日
    1.0K00
  • 手把手教你在Centos7.6环境下安装Redis(含详细图文)

    1.Linux安装redis 下载: wget http://download.redis.io/releases/redis-2.8.17.tar.gz 解压源码包 tar xzf redis-2.8.17.tar.gz 解压完成后的目录 redis-2.8.17 安装 执行完make命令后,在redis-2.8.17 的 src目录下会出现编译后的 re…

    2022年6月14日
    1.2K00
  • Linux在线yum方式安装mysql5.7(适用于mysql8.0)

    Linux下软件常见部署方式有三种:yum安装、rpm安装以及编译安装。由于离线、编译需要先下载多个文件再安装,步骤较多,所以整理了一下在线安装mysql的方法,文中系统为CentOS7.9版本。 1.配置好yum源,包括epel源 使用官方yum仓库,官方下载链接 2. 生成yum源缓存并查看mysql版本 从enable状态来看,默认启用的是最新8.0版…

    2023年1月1日
    1.1K00
  • sqlserver数据库出现可疑错误修复方法

    1、主数据库出现可疑修复方法:sql 第一种方法:数据库 当数据库发生这种操做故障时,能够按以下操做步骤可处理此要领,打开数据库里的Sql查询编辑器窗口,运行如下的命令: 编辑器 ?修改数据库为紧急模式sqlserver  ALTER DATABASE 数据库名 SET EMERGENCYspa ?使数据库变为单用户模式日志  …

    2023年2月18日
    85700
  • Sql Server数据库显示中文乱码的解决方案

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

    2023年2月18日
    89600

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信