我是靠谱客的博主 英俊老师,最近开发中收集的这篇文章主要介绍MySQL新建存储过程出现:ERROR 1558 (HY000): Column count of mysql.proc is wrong. Expected 20, found 16. Create 参考文献,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我在MySQL版本:Ver 14.14 Distrib 5.1.61上创建存储过程是没有问题的,但是在版本:Ver 14.12 Distrib 5.0.26上面创建存储过程的时候就出现了上面的错误。甚至使用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]就可以解决。

查找MySQL的安装目录找到mysql_upgrade : 
mysql_upgrade在MySQL的安装目录的bin中。可以使用如下命令查找MySQL的安装目录:ps -ef|grep -w mysql,我获取的结果如下:

/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/Tencent_IM.err --pid-file=/usr/local/mysql/data/Tencent_IM.pid --socket=/tmp/mysql.sock --port=3306
 
 
  • 1
  • 1

/usr/local/mysql 是指:mysql的安装路径。 
/usr/local/mysql/bin 是指:mysql的运行程序存放路径,其中就包括 mysql_upgrade。 
/usr/local/mysql/data 是指:mysql数据库文件的存放路径。

注意事项: 
使用mysql_upgrade 对数据库的数据表结构等升级时,数据库引擎MyISAM 会做检查、修复的动作,InnoDB 执行 mysql_upgrade 没有作用。


参考文献

[1]Column count of mysql.proc is wrong. Expected 20, found 16


转载地址 

最后

以上就是英俊老师为你收集整理的MySQL新建存储过程出现:ERROR 1558 (HY000): Column count of mysql.proc is wrong. Expected 20, found 16. Create 参考文献的全部内容,希望文章能够帮你解决MySQL新建存储过程出现:ERROR 1558 (HY000): Column count of mysql.proc is wrong. Expected 20, found 16. Create 参考文献所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部