navicat备份时出现Column count of mysql.proc is wrong - 小众知识

navicat备份时出现Column count of mysql.proc is wrong

2013年01月27日 14:18:05 苏内容
  标签: mysql
阅读:7328
将mysql从5.1升级到5.5之后,用navicat导出数据的时候出现了错误:
1558 - Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.
错误来源,是由于曾经升级过数据库。
mysql.proc
这个是5.1里面的系统表来的,用来记录存储过程或函数的信息.
升级完后未使用mysql_upgrade升级数据结构造成的。用Navicat For MySQL会有此错误提示。
解决方法:
使用命令:mysql_upgrade 就可以解决
------------------------------------------------------------------
[root@localhost ~]# mysql_upgrade -u root -p 13456


安装MYSQL后,又一次系统出现问题了,于是我查看mysql的错误日志,竟发现Table 'mysql.servers' doesn't exist问题的错误,
虽然与我的问题无关,但这个问题还是引起我的注意。
分析看是缺少mysql.servers这个表。
后上网寻找解决办法,发现解决这个问题有两个方法:
解决方法一,自己建立这张表。
use mysql;
CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
解决方法二,执行修复脚本,让mysql自己修复。在share目录下的mysql_fix_privilege_tables.sql是修复脚本,同样是执行即可。
原因:之所以会出现这个问题,是版本升级造成的不一致。
扩展阅读