mysql.proc有什么用_mysql创建存储过程时,提示mysql.proc错误,要求使用mysql_upgrade来修复...

通过mysql客户端执行编写好的存储过程时,创建失败。出现如下错误提示,

ERROR 1558 (HY000): Column count

of mysql.proc is wrong. Expected 20, found 16.

Created with MySQL 50020, now running

50524. Please use mysql_upgrade to fix thi

s error.

mysql.proc表的列数应该是20,当前只有16列,缺少4列,请通过mysql_upgrade来修复

原因分析

Mysql客户端是使用的5.5的,mysql数据库文件是直接使用的旧版本的mysql数据库文件,因此mysql.proc表中缺少四列,导致错误。

解决方案:

1、(win下某些集成环境可能没有这两个文件,linux忽略) : 如果你的

(mysql安装目录\bin)  目录下没有 mysql_upgrade.exe和mysqlcheck.exe两个文件,请通过如下方式获取并复制到目录下:

a.请先从mysql官网下载安装相同版本mysql,然后从bin目录中获取这两个文件.(多个mysql冲突问题请自行百度解决)。

b.让朋友发给你。

2、(win下):

先启动mysql;

开始->运行->输入cmd回车,在操作提示符下输入

mysql安装目录\bin\mysql_upgrade -u root -p

(输入你的密码) 然后回车,待运行完之后关闭DOS窗口。

(linux 下):

使用root权限登陆,在终端执行

service mysqld restart  (要先启动mysql才能执行升级,不知道你是否已经启动mysql ,所以直接restart了)

mysql_upgrade -u root -p

即可

3、如果执行完成之后末行出现 ok ,恭喜你升级成功。

如果失败,有两种解决方案:

a.暂时移出mysql\data文件中除 mysql以外的文件夹,然后再次尝试第二步

b.一般a就可以解决问题了,只不过b是问题的本质

执行如下sql语句即可

ALTER TABLE mysql.proc

ADD `character_set_client` char(32) CHARACTER SET utf8 COLLATE

utf8_bin DEFAULT NULL,

ADD `collation_connection` char(32) CHARACTER SET utf8 COLLATE

utf8_bin DEFAULT NULL,

ADD `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin

DEFAULT NULL,

ADD `body_utf8` longblob

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值