33

MySQL 8开始,默认情况下启用该column-statistics标志。

因此,如果您尝试使用MySQL Workbench 8.0.12 转储一些表,您会收到以下错误消息:

14:50:22 Dumping db (table_name) Running: mysqldump.exe --defaults-file="c:\users\username\appdata\local\temp\tmpvu0mxn.cnf" --user=db_user --host=db_host - -protocol=tcp --port=1337 --default-character-set=utf8 --skip-triggers "db_name" "table_name" mysqldump: 无法执行 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of -buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db_name' AND TABLE_NAME = 'table_name';': information_schema (1109) 中的未知表 'COLUMN_STATISTICS'

操作失败,退出代码 2 14:50:24 C:\path\to\my\dump 的导出已完成,出现 1 个错误

MySQL (Workbench) 8 中有什么方法可以column-statistics永久禁用吗?


解决方法 1

一个烦人的解决方法是通过以下方式手动完成:

mysqldump --column-statistics=0 --host=...

解决方法 2

  1. 重命名 mysqldump
  2. 创建一个shell 脚本(或 Windows 上的批处理)
  3. --column-statistics=0使用此脚本中的参数调用重命名的 mysqldump
  4. 将其保存为 mysqldump

解决方法 3

  1. 下载MySQL 5.7
  2. 提取 mysqldump
  3. 使用这个 mysqldump

例如在 MySQL Workbench 中:Edit / Preferences... / Administration / Path to mysqldump Tool


提前致谢!

4

13 回答 13

34

我的解决方法:

  1. 创建名为 mysqldump.cmd 的文件,其内容为:
    @echo off
    "c:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0

(如有必要,替换 mysqldump.exe 的路径)

  1. 打开 MySQL Workbench 并转到 Edit > Preferences > Administration,将路径更改为 mysqldump 工具并将其指向 mysqldump.cmd
于 2019-03-12T12:16:34.467 回答
18

最简单的工作

使用Mysql Workbench 8.0时

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

祝你好运!

于 2018-11-15T17:43:11.450 回答
6

我已经下载了 8.0.16 版本,还是同样的问题。

在数据导出高级选项中,我没有看到任何关于“统计”的选项!我在 my.ini 添加了

[mysqldump]
quick
max_allowed_packet = 16M
column-statistics=0

不能解决问题

我一直在谷歌搜索,但我找不到解决方案。我找到了一个为此苦苦挣扎的同伴,但至少对我来说没有任何人有解决方案。

最后,我更改了 MySQL Workbench 文件 c:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules\wb_admin_export.py:

skip_column_statistics = True #if get_mysqldump_version() > Version(8, 0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else False

我已发表评论

if get_mysqldump...

我知道这不是办法,但我现在找不到另一个更好的解决方案。对我来说,这至少是奇怪和奇怪的。如果有人有更好的解决方案,请告诉我!

PS 更改后重新启动工作台

于 2019-06-08T19:55:43.970 回答
6

想法是这样的:每个服务器版本都有一个专用的 mysqldump 版本。不理想,当然也不是很向后兼容,但情况就是这样。MySQL Workbench 只能包含一个 mysqldump 二进制文件,因此使用最新的一个。从那里下载 MySQL 5.7 zip 并使用 mysqldump 的方法是一个很好的解决方法,没有很多副作用。您只需要小心使用哪个转储版本转储哪个服务器。

如果您希望 MySQL Workbench 自动应用该列 stat 标志,请在https://bugs.mysql.com提交错误报告。

更新

同时为这个问题创建了一个错误报告:https ://bugs.mysql.com/bug.php?id=91640

于 2018-08-01T09:10:58.677 回答
5

视窗用户

我有MySQL Workbench 8.0CE 和 Xampp v3.2.3,这对我有用:

  1. 打开 xampp,然后打开 mysql config > my.ini // 添加:column-statistics = 0 所以:
    [mysqldump]
    quick
    max_allowed_packet = 16M
    column-statistics = 0

保存并关闭,重新启动 xampp mysql 服务器。(以防万一)

在工作台中: 编辑 > 首选项 > 管理

在 Mysqldump 路由中放置 xampp 的 mysqldump 路由,在我的情况下:

C:\xampp\mysql\bin\mysqldump.exe

这对我有用!

于 2019-06-25T00:41:10.967 回答
3

如果您正在运行支持 mysqldump 的操作系统(即 Linux),则可能还有另一种解决方法。在首选项中设置 mysqldump 二进制文件的路径,并在路径中包含 --column-statistics=0 参数,在:编辑>>首选项>>管理>> MysqlDump工具的路径

于 2019-01-24T10:26:17.450 回答
1

Mysql-workbench 版本 8.0.14 开始,您没有禁用column-statistics的选项。但是您可以选择通过启用 delete-master-logs 来做到这一点: https ://stackoverflow.com/a/64855306/10747412

于 2020-11-16T10:16:20.377 回答
1

下载最新版本的Mysql Workbench 8.0.16 就没有问题了。

https://dev.mysql.com/downloads/workbench/

没有检查选项!

于 2019-05-06T10:22:07.083 回答
1

Linux 用户

与上面在 Windows 上的其他答案相同的想法,这是一种在 Linux 上全局更改 mysql 设置的方法,这样您就不需要再编写mysqldump --column-statistics=0了。

mysqldump throws中的 Server Fault Stack Exchange引述:Unknown table 'COLUMN_STATISTICS' in information_schema (1109) ,在此获得高度评价:

要默认禁用列统计,您可以添加

[mysqldump]
column-statistics=0

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

我建议直接在/etc/mysql/mysql.cnf.

于 2022-01-26T09:37:07.217 回答
0

我通过修改 MySQL Workbench 配置文件解决了这个问题wb_admin_export.py

在这里查看我的答案。

于 2020-01-30T09:36:03.183 回答
0

[![使用额外命令从 DBEAVER 导出][1]][1]

对我来说,我只是添加了一个额外的命令,它对我有用![1]:https ://i.stack.imgur.com/9iBvO.png

于 2021-10-11T06:46:18.673 回答
0

打开 MySQL Workbench Preferences 并根据您的 xampp / mysql 服务器路径选择mysqldump Tool的路径

MySQL Workbench 编辑 > 首选项 > 管理

C:\xampp\mysql\bin\mysqldump.exe

而已

于 2021-04-07T18:16:04.800 回答
0

我正在使用 Ubuntu 16.04、MySql Workbench 6.3.6、MySql 8.0.25、MySqlDump 8.0.25。

我的解决方法如下:

  1. 打开/usr/lib/mysql-workbench/modules/wb_admin_export.py
  2. 代替
s = re.match(".*Distrib ([\d.a-z]+).*", output)

s = re.match(".*mysqldump  Ver ([\d.]+).*", output) 
  1. 代替
cmd = subprocess.list2cmdline(args) 

args.append("--column-statistics=0")
cmd = subprocess.list2cmdline(args) 
于 2021-06-23T06:50:07.423 回答