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.sxszhian.com/archives/10653
来源:上海永驰网络科技有限公司
文章版权归作者所有,未经允许请勿转载。

