无法从mysql工作台

时间:2018-06-11 18:01:27

标签: mysql database export mysql-workbench

嘿伙计们,我正在尝试从mysql工作台导出我的数据库,但我在导出进度上得到了这个:

  

正在运行:mysqldump.exe   --defaults文件=" C:\用户\用户\应用程序数据\本地\ TEMP \ tmp2h91wa.cnf" --user = root --host = localhost --protocol = tcp --port = 3306 --default-character-set = utf8 --skip-triggers" mydb" mysqldump:无法执行SELECT COLUMN_NAME,
  JSON_EXTRACT(直方图,' $。"桶数指定"')
  来自information_schema.COLUMN_STATISTICS WHERE   SCHEMA_NAME =' mydb' AND TABLE_NAME =' courses';':未知表格   ' column_statistics'在information_schema(1109)

     

操作失败,exitcode 2 20:55:09导出   C:\ Users \ user \ Documents \ dumps \ mydb.sql已完成1个错误

你知道可能出现什么问题吗? 感谢

16 个答案:

答案 0 :(得分:26)

在MySql Workbench版本8.0.13中,执行以下步骤:

  1. 转到“管理/数据导出”
  2. 在“要导出的表”列表中选择要导出的模式
  3. 点击“高级选项...”按钮(右上方)
  4. 搜索“其他/列统计”选项
  5. 将值设置为0
  6. 点击“返回”按钮(右上方)

现在它应该可以工作了。不幸的是,每次启动MySql Workbench时都必须这样做。

答案 1 :(得分:14)

也遇到了这个问题。 决定如下: 在工作台菜单中,转到:

编辑-首选项-管理

在“ mysqldump工具的路径”字段中,指定 mysqldump.exe 的路径,在我的情况下为“ C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqldump.exe ”,单击“确定”。

此后,错误不再出现。

答案 2 :(得分:14)

总结一下我在MySQL Workbench 8.0.18上测试的@JustinLaureno和@ Mohd.Shaizad的有用评论中所做的事情:

  • 导航到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
    
  • 至:

    skip_column_statistics = True
    
  • 请勿 添加内嵌注释,否则将不起作用!

    skip_column_statistics = True # This won't work
    
  • 重新启动MySQL Workbench

  • 执行导出

答案 3 :(得分:7)

错误仍在Workbench 8.0.16中。

修复:

您可以在工作台程序目录中的模块下编辑wb_admin_export.py。搜索“ skip_column_statistics = True”(您将发现有条件的,不用担心),注释该行并添加一行“ skip_column_statistics = True”(无条件)。

现在将始终添加必需的参数。

答案 4 :(得分:5)

我也遇到了同样的问题。通过禁用MySQL Workbench Data Export的高级选项中的列统计信息,我可以解决此问题。

1:单击高级选项: enter image description here

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

现在返回并导出数据。 谢谢

答案 5 :(得分:4)

5分钟前我遇到了同样的问题。

我通过添加mysqldump命令--column-statistics=0来修复它。 这样做,它应该可以工作。

对于我来说,这是一个侦查任务,但您应该了解一下。

enter image description here

答案 6 :(得分:4)

这是由于默认情况下在mysqldump 8中“启用”了一个标志。

可以通过添加--column-statistics = 0来禁用。

语法:

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

有关更多信息,请转到link

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

[mysqldump]

column-statistics=0

到MySQL配置文件,例如/etc/my.cnf或〜/ .my.cnf。

答案 7 :(得分:3)

我遇到了同样的问题,我这样解决了它:

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

在属性“ mysqldump工具的路径”中放置mysqldump.exe的路径 通常可以在“ C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqldump.exe”中找到

答案 8 :(得分:1)

我在使用 MySQL Workbench 最新版本时遇到了同样的问题,我使用 mysqldump 命令行解决了这个问题

C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump --column-statistics=0  --user=USERNAME --host=REMOTE_HOST --protocol=tcp --port=3306 --default-character-set=utf8 DATABASE_NAME > c:\temp\dump.sql --password

将 USERNAME、REMOTE_HOST、DATABASE_NAME 替换为您的姓名。

答案 9 :(得分:1)

在 MACOS 上,只需降级到 8.0.13 版,这是我们唯一能做的事情。

以下链接可以提供帮助

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

MacOS MySQL Work Bench 8.0.13

如果您使用 SSH 密钥访问远程数据库,请执行以下操作 -:

第一步

brew install putty

第 2 步

puttygen id_rsa -O private-openssh -o id_rsa.pem

步骤 3 - 在 MySQL 工作台中

SSH Key File: /Users/local/.ssh/id_rsa.pem

希望它对某人有所帮助,因为它浪费了我们 3 个小时的时间:)

答案 10 :(得分:0)

转到C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules并打开文件wb_admin_export.py并取消注释“ --column-statistics=0”,然后重新启动工作台

答案 11 :(得分:0)

我在wb_admin_export.py中发现了这种情况,而不是注释的--column-statistics=0。您可以删除else False条件,或将其更改为else True

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

答案 12 :(得分:0)

在版本8中,我修改了“ wb_admin_export.py”并重新启动工作台。为我工作

def start(self):
.
.
.
    title = "Dumping " + schema
    title += " (%s)" % table
    # description, object_count, pipe_factory, extra_args, objects
    args = []
    args.append('--column-statistics=0')
class ViewsRoutinesEventsDumpData(DumpThread.TaskData):
    def __init__(self, schema, views, args, make_pipe):
        title = "Dumping " + schema + " views and/or routines and/or events"
        if not views:
           extra_args = ["--no-create-info"]
        else:
            extra_args = []
        DumpThread.TaskData.__init__(self,title, len(views), ["--skip-triggers", " --no-data" ," --no-create-db", "--column-statistics=0"] + extra_args + args, [schema] + views, None, make_pipe)```

答案 13 :(得分:0)

您可以使用本机MySQL Workbench “迁移向导” 来迁移数据而不会出现错误。 可以在菜单中找到 数据库->迁移向导 它可以“在线”传输数据,但是我没有找到使用它创建转储文件的选项。 对于迁移来说,这是一个很好的解决方案

答案 14 :(得分:0)

Mysql-workbench版本8.0.14 中,您不能选择禁用列统计 Mysql-workbench version 8.0.13

但是您可以选择通过启用delete-master-logs来做到这一点: Mysql-workbench version 8.0.22

  • -删除主日志“ RESET MASTER” SQL命令
  • 具有相同的作用
  • RESET MASTER 删除索引文件中列出的所有二进制日志文件,将二进制日志索引文件重置为空,并创建一个新的二进制日志文件。该语句仅在第一次启动主服务器时使用。

答案 15 :(得分:0)

转到 C:\Program Files\MySQL\MySQL Workbench 8.0 CE\modules 并打开此文件 wb_admin_export.py \您可以删除 else False 条件,或将其更改为 else True。

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