mysqldump 抛出:information_schema 中的未知表“COLUMN_STATISTICS”(1109)

mysqldump 抛出:information_schema 中的未知表“COLUMN_STATISTICS”(1109)

每次我尝试制作时mysqldump都会收到以下错误:

$> mysqldump --single-transaction --host host -u user -p db > db.sql
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM,
'$."number-of-buckets-specified"') FROM
information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db' AND
TABLE_NAME = 'Absence';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

结果是转储不完整。奇怪的是,从另一台主机执行的相同命令可以正常工作,不会引发任何错误。有人遇到过同样的问题吗?

我正在使用 mysql-client8.0并尝试访问 mysql5-7服务器 - 也许这就是原因?

答案1

这是由于在mysqldump8。您可以通过添加来禁用它--column-statistics=0。命令如下:

mysqldump --column-statistics=0 --host=<server> --user=<user> --password=<password> 

查看此链接了解更多信息。要默认禁用列统计信息,您可以添加

[mysqldump]
column-statistics=0

到 MySQL 配置文件,转到/etc/my.cnf~/.my.cnf或直接转到/etc/mysql/mysql.cnf

答案2

对于使用 MySQL Workbench 的用户,数据导出屏幕上有一个“高级选项”按钮。可以通过将“使用列统计信息”选项设置为 0 来禁用该选项。

我没有确认,但以下信息也被认为是正确的:在版本 8.0.14 中它缺失了。在版本 8.0.16 中它默认这样做。

答案3

我花了一整天时间寻找解决方案,并在这里注册只是为了分享我的解决方案。

是的,这个错误是由于版本差异造成的。

只需下载MySQL 5.7 ZIP 存档从这里:https://dev.mysql.com/downloads/mysql/并解压缩,然后使用其中的 mysqldump.exe 文件。

如果你正在使用 MySQL Workbench,则需要通过以下方式设置下载的 mysqldump 工具的路径:编辑 -> 偏好设置 -> 管理(从左侧窗格)。

希望这可以帮助。

答案4

最简单的解决方法

使用时Mysql 工作台 8.0

  • 打开“数据导出”选项卡
  • 单击“高级选项” 在此处输入图片描述
  • 在其他标题下,将列统计信息设置为 0 在此处输入图片描述
  • 再次导出在此处输入图片描述

祝你好运!

相关内容