如何永久禁用mysql 8中的列统计信息?

goucqfw6  于 2021-06-20  发布在  Mysql
关注(0)|答案(9)|浏览(483)

自从mysql 8 column-statistics 默认情况下启用标志。
因此,如果尝试使用mysql workbench 8.0.12转储某些表,则会收到以下错误消息:
14:50:22转储db(table\u name)运行:mysqldump.exe--defaults file=“c:\users\username\appdata\local\temp\tmpvu0mxn.cnf”--user=db\u user--host=db\u host--protocol=tcp--port=1337--default character set=utf8--skip triggers“db\u name”“table\u name”mysqldump:cannot execute'select column\u name,json\u extract(直方图,“$”指定的存储桶数“”),其中schema_name='db_name'和table_name='table_name';':信息\架构中的未知表“列\统计信息”(1109)
操作失败,exitcode 2 14:50:24 c:\path\to\my\dump的导出已完成,出现1个错误
在mysql(workbench)8中有什么方法可以禁用它吗 column-statistics 永久地?

解决方法1

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

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

解决方法2

重命名mysqldump
创建shell脚本(或windows上的批处理)
使用 --column-statistics=0 此脚本中的参数
另存为mysqldump

解决方法3

下载MySQL5.7
提取mysqldump
使用此mysqldump
例如在mysql工作台中:edit/preferences…/mysqldump工具的管理/路径
提前谢谢!

dvtswwa3

dvtswwa31#

其思想是:每个服务器版本都有一个专用的mysqldump版本。不是很理想,当然也不是很向后兼容,但就是这样的情况。mysql workbench只能包含一个mysqldump二进制文件,因此使用最新的一个。下载mysql5.7zip并从那里使用mysqldump的方法是一个很好的解决方法,没有很多副作用。您只需小心哪个服务器使用哪个转储版本转储。
如果您想让mysql工作台自动应用列stat标志,请在https://bugs.mysql.com.
更新
同时,已为此问题创建错误报告:https://bugs.mysql.com/bug.php?id=91640

nafvub8i

nafvub8i2#

windows用户
我有mysql workbench 8.0ce和xampp v3.2.3,这对我很有用:
打开xampp,然后打开mysql config>my.ini//add:column statistics=0 so:

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

保存并关闭,重新启动xampp mysql服务器(以防万一)
在工作台中:编辑>首选项>管理
在mysqldump route中输入xampp的mysqldump路径,在我的例子中:

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

这对我有用!

alen0pnh

alen0pnh3#

下载mysql workbench 8.0.16的最新版本,没有其他问题。
https://dev.mysql.com/downloads/workbench/
没有选择检查!

nbysray5

nbysray54#

最简单的解决方法
使用mysql workbench 8.0时
打开“数据导出”选项卡
单击高级选项

在另一个标题下,将列统计信息设置为0

再次导出

祝你好运!

scyqe7ek

scyqe7ek5#

我通过修改mysql workbench配置文件修复了这个问题 wb_admin_export.py .
请看我的答案。

cedebl8k

cedebl8k6#

我的解决方法:
创建名为mysqldump.cmd的文件,其内容为:

@echo off
    "c:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0

(必要时替换mysqldump.exe的路径)
打开mysql workbench,进入edit>preferences>administration,将路径更改为mysqldump工具,并将其指向mysqldump.cmd

mhd8tkvw

mhd8tkvw7#

我已经下载了版本8.0.16,仍然是相同的问题。
在数据导出高级选项我没有看到任何关于“统计”的选项!我已经在我的.ini添加了

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

不能解决问题
我一直在谷歌上搜索,但找不到解决办法。我找到了一个同伴谁是挣扎与此,但没有任何人的解决方案,至少对我来说。
最后,我在mysql workbench中更改了文件c:\program files\mysql\mysql workbench 8.0 ce\modules\wb\u admin\u 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...

我知道这不是办法,但我现在找不到更好的解决办法。对我来说,这至少是奇怪和奇怪的。如果有人有更好的解决办法,请告诉我!
p、 s.更改后重新启动workbench

dffbzjpn

dffbzjpn8#

在mysql workbench 8.0.14版中,您没有禁用列统计的选项。但您可以通过启用“删除主控形状”来执行此操作-logs:https网址:stackoverflow.com/a/64855306/10747412

aelbi1ox

aelbi1ox9#

如果您运行的操作系统支持mysqldump(即linux),那么可能还有其他解决方法。在preferences中设置mysqldump二进制文件的路径,并在路径中包含--column statistics=0参数,在:edit>>preferences>>administration>>path to mysqldump tool中

相关问题