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

时间:2018-09-20 11:00:01

标签: mysql

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

我使用的语法:

mysqldump -uroot -p omnichannel_store_india > omnichannel_store_india.sql

引发错误:

  

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

信息表(1109)中的未知表'column_statistics'

3 个答案:

答案 0 :(得分:2)

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

该命令将类似于:

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

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

[mysqldump]

column-statistics=0

对我来说很棒。

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

在输出中添加ANALYZE TABLE语句,以便在重新装入转储文件时为转储表生成直方图统计信息。默认情况下,此选项是禁用的,因为大型表的直方图生成可能会花费很长时间。 Ref(mysql official documentaion link

答案 1 :(得分:0)

使用MySQL MySQL Workbench版本8.0.13

打开MySQL Workbench并单击“帮助”和“关于工作台”以了解您的MySQL Workbench版本-以下步骤不适用于MySQL Workbench版本> 8.0.13

在您的工作站上启动MySQL Workbench。

连接到数据库服务器。

点击侧边栏中的数据导出实用程序,然后选择要使用的数据库

备份和备份目标。请注意,您需要选中“包含创建模式”复选框,然后单击“开始导出”按钮 MySQL Workbench 8.0.3 Export

1:单击高级选项: Use advanced options to change column_statics = 0

2:在列统计的另一部分中,删除TRUE并将其设置为0以禁用它。 enter image description here

还原数据库的步骤 a-在您的工作站上启动MySQL Workbench。

b-连接到新创建的MySQL服务器

c用记事本打开转储文件并删除所有DEFINER文件

在文件中找到所有DEFINER指令并将其删除:搜索DEFINER =

[之前]

/ *!50003创建 / / !50017 DEFINER = John Doe @% / / !50003一些代码* / ;;

[之后]>

/ *!50003创建 / / !50003 MySQL代码* / ;;

d-单击侧栏中的“数据导入/还原”实用程序,然后指定数据库备份位置,然后单击“还原”。 enter image description here

答案 2 :(得分:0)

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

在 ubuntu 20.04 上,命令是:

apt remove mysql-client
apt install mariadb-client