Mysql-5.7.27下报错提示innodb_table_stats has length mismatch解决方法

小辉博客
小辉博客
小辉博客
394
文章
3
评论
2021-05-0717:46:02
评论
13.1K 1566字阅读5分13秒

升级Mysql-5.7.27时报错提示InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name. Please run mysql_upgrade的解决方法。

Mysql-5.7.17升级至Mysql-5.7.27后日志提示报错:

最近在做数据库手动升级工作时发现一个错误,老库版本5.7.17,新库版本使用的是5.7.27,迁移配置完后,瞄了一眼库的错误日志里面,突然蹦出一堆的下面这种:

MySQL generates the warning Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade

根据提示,可以看到是因为mysql.innodb_table_stats和mysql.innodb_index_stats这张表table_name列问题。

1)对比下新老版本数据库表结构

5.7.17版本:

MySQL [(none)]> desc mysql.innodb_index_stats;

table_name varchar(64) COLLATE utf8_bin NOT NULL,

5.7.27版本:

MySQL [(none)]> desc mysql.innodb_index_stats;

table_name varchar(199) COLLATE utf8_bin NOT NULL,

可以看出,5.7.27 版本上的innodb_index_stats和innodb_tables_stats的 table_name列,长度从64 变成了199,而我升级后的5.7.27中table_name还是64,问题找到!

解决办法

1)执行mysql_upgrade -u root -p --force

2)重启Mysql服务

/etc/init.d/mysqld restart

Mysql官方文档5.7.23的Release Notes如下:

地址:https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-23.html

相关内容:

Bugs Fixed

Important Change; Partitioning: After creating partitioned InnoDB tables with very long names, the table_name columns in the corresponding entries in the mysql.innodb_index_stats and mysql.innodb_table_stats system tables were truncated. To fix this issue, the length of the table_name column in each of these tables has been increased from 64 to 199 characters. In both cases, this is now the same as the lengths of these columns in MySQL 8.0.

When upgrading to this release, use mysql_upgrade to effect these changes in your MySQL installation. In the event that you fail to do this, MySQL generates the warning Table mysql/innodb_table_stats has length mismatch in the column name table_name. Please run mysql_upgrade in the error log.

继续阅读
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢本站,请打赏支持本站,谢谢!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
小辉博客
  • 本文由 发表于 2021-05-0717:46:02
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
MySQL Binlog日志三种模式 Mysql

MySQL Binlog日志三种模式

binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制...
MySQL 连接 Mysql

MySQL 连接

MySQL 连接 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例 以下是从命令行中连接mysql服务...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: