mysqldump:无法执行。information_schema中的未知表'column_statistics'

Ami*_*esh 5 mysql

我想转储数据库,即使遵循正确的语法,也会出现以下错误。

我使用的语法:

mysqldump -uroot -p omnichannel_store_india > omnichannel_store_india.sql

引发错误:

mysqldump:无法从information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME ='omnichannel_store_india'AND TABLE_NAME ='consignment_items';中执行'SELECT COLUMN_NAME,JSON_EXTRACT(HISTOGRAM,'$。“指定的桶数”')。

information_schema中的未知表'column_statistics'(1109)

小智 11

就我而言,我们使用 mariadb-server 和 mysql-client(8.0)。列统计是在 mysql-client 8.0 上引入的。快速修复方法是删除 mysql-client 并安装 mariadb-client。

在 ubuntu 20.04 上,命令是:

apt remove mysql-client
apt install mariadb-client
Run Code Online (Sandbox Code Playgroud)


Ami*_*esh 9

这是由于在mysqldump 8中默认启用了“ column-statistics”标志。您可以通过添加--column-statistics = 0来禁用它。

该命令将类似于:

mysqldump --column-statistics=0 --host=<server> --user <user> --password <securepass> 
Run Code Online (Sandbox Code Playgroud)

要默认禁用列统计信息,可以在MySQL配置文件中添加以下内容,例如/etc/my.cnf或〜/ .my.cnf。

[mysqldump]

column-statistics=0
Run Code Online (Sandbox Code Playgroud)

这对我来说很棒。

有关“列统计”的更多详细信息

重新加载转储文件时,将ANALYZE TABLE语句添加到输出中以为转储表生成直方图统计信息。默认情况下,此选项是禁用的,因为大型表的直方图生成可能需要很长时间。参考(mysql官方文档链接