问题描述
在使用 mysqldump 备份 MySQL5.7 数据库时报错,ERROR 1109 (42S02): Unknown table 'column_statistics' in information_schema。 相关环境/工具信息如下:
- mysqldump 版本使用 8.0.22
- MySQL 实例使用 5.7.32
问题分析
通过报错我们可以看到问题出现在 column_statistics 这个视图上,column_statistcs 是用来存储 MySQL8.0 的新功能**"统计直方图"**的信息。而 MySQL5.7 information_schema 中并没有 column_statistcs 视图。 由此我们发现根本原因是 mysqldump 的版本过高导致的。
解决方案
您可以使用如下方法来规避比问题:
1.禁用 column_statistcs
在 mysqldump 8.0.22 备份的时候禁用掉 column_statistcs,具体通过如下步骤实现:在命令行添加参数 --column-statistics=0
mysqldump --column-statistics=0
2.使用5.7版本的mysqldump去备份数据库
3.修改mysql的默认配置my.cnf添加如下参数
如果是自建的 MySQL 实例,您可以采用如下方法
[mysqldump]
column-statistics=0
确认修改生效,默认值已经变成了FALSE
[root@JMS mysql]# mysqldump --help | grep "^column-statistics"
column-statistics FALSE
参考文档
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_column-statistics 如果您有其他问题,欢迎您联系火山引擎技术支持服务