2018-02-05 1548 cannot load from mysql.proc the table is probably corrupted

同事说navicat查询数据库,报错:1548-Cannot load from mysql.proc. The table is probably corrupted

      同事查了查资料,问我数据库是否升级,刚接手不久,不知道在我之前是否升过级,那就mysql_upgrade  -uroot  -p 修复升级

 mysql_upgrade -uroot  -p




[root@db2343 ~]# mysql_upgrade -uroot 

Looking for 'mysql' as: mysql

Looking for 'mysqlcheck' as: mysqlcheck

Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/my/base/mysql.sock' 

Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/my/base/mysql.sock' 

    。。。。。。。。。。。。。。。。。。。

mysql.columns_priv                                 OK

mysql.db                                           OK

mysql.event                                        OK

mysql.func                                         OK

mysql.general_log                                  OK

mysql.help_category                                OK

mysql.help_keyword                                 OK

mysql.help_relation                                OK

mysql.help_topic                                   OK

mysql.host                                         OK

mysql.ndb_binlog_index                             OK

mysql.plugin                                       OK

mysql.proc                                         OK

mysql.procs_priv                                   OK

mysql.proxies_priv                                 OK

。。。。。。。。。。。。。。。。。。。。

mysql.user                                         OK

test.test                                          OK

Running 'mysql_fix_privilege_tables'...

OK


当出现许多ok之后,基本上就修复完毕。告知同事,查询ok。


way 2

这个方法好像不生效哦?

1548-Cannot load from mysql.proc. The table is probably corrupted

原因是mysql.proc升级时有个字段没有升级成功。

在5.1中mysql.proc表的comment字段是varchar(64):

  `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',

但在5.5中应该是text:

 `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,   So,执行下面的语句,把这个字段修改为text,就彻底OK了: 

ALTER TABLE `proc`

MODIFY COLUMN `comment`  text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL AFTER `sql_mode`;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1,MySQL权限体系 mysql 的权限体系大致分为5个层级: 全局层级: 全局权限适用于一个给定服务器中的所有...
    不排版阅读 4,466评论 0 4
  • 用了mysql好多年,很少关注mysql自带库,自然也不知道这个库里存放些什么,在看《MySQL排错指南》时看到它...
    灼灼2015阅读 5,865评论 1 3
  • 安装并配置MySQL数据库 3.2.1安装MySQL数据库 1.MySQL数据库的安装环境准备 如果读者没有物理服...
    SkTj阅读 9,511评论 0 6
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 9,459评论 0 19
  • 在经过一年的航行,从北美出发的第二支印度远征军20个团的兵力到达迈索尔城。印度大总督莫里斯-德尔梅德却发现走下运兵...
    游在路上的鱼阅读 3,780评论 0 1