【问题标题】:Can't export my database from mysql workbench无法从 mysql 工作台导出我的数据库
【发布时间】:2018-11-21 01:13:29
【问题描述】:

我正在尝试从 MySQL Workbench 导出我的数据库,但在导出过程中我得到了这个:

运行:mysqldump.exe --defaults-file="c:\users\user\appdata\local\temp\tmp2h91wa.cnf" --user=root --host=localhost --protocol=tcp --port=3306 --default-character- set=utf8 --skip-triggers "mydb" mysqldump: 无法执行 'SELECT COLUMN_NAME,
JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'mydb' AND TABLE_NAME = 'courses';': 未知表 information_schema (1109) 中的“column_statistics”

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

【问题讨论】:

  • 这似乎是新的 MySQL Workbench (8.x) 尝试从早期版本的 MySQL 数据库 (5.x) 导出的问题。我遇到了同样的问题,在 MySQL Workbench 工具中看不到解决方法。在 GUI 中似乎没有将 column_statistics 设置为 0 的选项。 bugs.mysql.com/bug.php?id=89825.
  • 看起来它已在版本 - 8.0.17 中修复
  • 这个错误似乎已在 Workbench 8.0.20 中修复,至少在 Ubuntu 20.04 上更新 Workbench 为我消除了该错误。
  • 我在8.0.26还是有问题
  • 与 8.0.28 Ubuntu 20.04 相同的问题

标签: mysql database export mysql-workbench


【解决方案1】:

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

编辑 - 首选项 - 管理

在“mysqldump 工具的路径”字段中,指定 mysqldump.exe 的路径,在我的例子中是“C:\Program Files\MySQL\ MySQL Server 5.7\bin\mysqldump.exe”,点击确定。

之后,错误不再出现。

【讨论】:

  • 现在这是正确的答案,因为它与添加到您在尝试执行导出时收到的弹出警告中的说明相匹配,该说明是在 MySQL Workbench 8.0.13 中添加的.
  • 对我来说这是在 'C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe' 但是,这并没有解决我的错误。
  • 这为我修复了错误,路径是您安装“mysql/bin/mysqldump.exe”的位置
  • 很棒的解决方案
【解决方案2】:

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

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

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

【讨论】:

  • 我的 Workbench 没有这个选项,可能是因为生产数据库是 5.x 版本,而我使用的是 8.x。有什么方法可以激活 mysqldump.exe 8.x 和 MySQL Server 5.x 之间的兼容模式?
  • 似乎这不是最新版本中的选项。 ThatGuyRob 提到的错误跟踪器问题说,他们添加了一个弹出警告,其中包含有关如何修复它的说明,这在 Artem 的回答中有所描述。
  • this other MySQL bug report 中所述,WorkBench 8.0.14 和 8.0.15 的此问题将在版本 8.0.16 中修复
  • 正如@Veve 所描述的,这是一个不固定的问题,在 Mac 中,我的解决方案是将 WorkBench 降级到 v.6.3.10 版本,它工作正常,我需要这个帮助。
  • 这是另一种解决方法,如果您没有看到“其他/列统计信息”菜单项:stackoverflow.com/a/55121256/914352
【解决方案3】:

总结一下我从 @JustinLaureno@Mohd.Shaizad 的有用 cmets 中所做的,在 MySQL Workbench 8.0.18 上进行了测试:

  • 导航到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
  • 请勿添加内联 cmets,否则将不起作用!
 skip_column_statistics = True # This won't work
  • 重启 MySQL 工作台
  • 执行导出

【讨论】:

  • 我的没有skip_column_statistics 我正在使用 MySql 工作台 8.0 CE
  • 太好了,现在我们将如何在 mac 上执行此操作?我们在哪里可以找到那个文件……有人知道吗?
  • 解决了我在 Windows 上使用 Workbench 版本 8.0.23 时遇到的问题。
  • 非常感谢先生
  • 为我工作。我正在使用 mysql workbench 8.0.26 和 ubuntu 20.04。目标数据库 mysql 版本 10.1.48
【解决方案4】:

这是由于 mysqldump 8 中默认“启用”的标志。

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

语法:

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

欲了解更多信息,请转至this link

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

[mysqldump]
column-statistics=0

到 MySQL 配置文件,例如 /etc/my.cnf~/.my.cnf

【讨论】:

  • 救命稻草!谢谢:)
  • 当您使用mysqldump 备份数据库并弹出错误时,这是​​更好的解决方案。
【解决方案5】:

工作台 8.0.16 中仍然存在错误。

修复:

您可以在工作台程序目录中的模块下编辑 wb_admin_export.py。搜索“skip_column_statistics = True”(你会找到一个条件,别担心),注释该行并添加一行“skip_column_statistics = True”(没有条件)。

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

【讨论】:

  • 这在 8.0.22 版本中对我有用,但令人惊讶的是,它仅在我编辑现有行本身时才有效。当我制作一个副本并编辑副本时(对原始副本进行了注释),Workbench 没有在导航器(左侧边栏)中显示任何内容。奇怪的行为,除了编辑原始行之外没有任何帮助。我怀疑 Workbench 出于某种原因解析了它自己的 .py 文件,并且当它以一种意想不到的方式找到它的变量时会窒息,即使那是在评论中。
【解决方案6】:

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

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

在我的情况下,这是一项 phing 任务,但您应该明白这一点。

【讨论】:

    【解决方案7】:

    我也遇到了同样的问题。我可以通过禁用 MySQL Workbench 数据导出高级选项中的列统计来解决此问题。

    1:点击高级选项:

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

    现在返回和导出数据。 谢谢你

    【讨论】:

      【解决方案8】:

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

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

      在“mysqldump 工具的路径”属性中放置 mysqldump.exe 的路径 它通常位于“C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe”中

      【讨论】:

        【解决方案9】:

        我在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
        

        【讨论】:

          【解决方案10】:

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

          【讨论】:

          • 看不到任何--column-statistics=0对该文件发表评论
          【解决方案11】:

          Mysql-workbench 版本 8.0.14 起,您无法选择禁用 column-statistics

          但是您可以选择通过启用 delete-master-logs: Mysql-workbench version 8.0.22

          • --delete-master-logs 效果与“RESET MASTER” SQL 命令
          • 相同
          • RESET MASTER 删除索引文件中列出的所有二进制日志文件,将二进制日志索引文件重置为空,并创建一个新的二进制日志文件。此语句仅在第一次启动 master 时使用。

          【讨论】:

          • 运行:mysqldump --defaults-file="/tmp/tmp5c5ww33n/extraparams.cnf" --host=xxxx --port=3307 --default-character-set=utf8 --user= admin --protocol=tcp --delete-master-logs=TRUE --skip-triggers "fedena" mysqldump: 无法执行'SELECT COLUMN_NAME, .... . 操作失败,退出代码 2 导出 b'/home/sanaulla/dumps/Dump20210331.sql' 已完成,出现 1 个错误
          • 这个帮助了我。谢谢
          【解决方案12】:

          在 MACOS 上,只需降级到 8.0.13 版本,这是唯一为我们完成这项工作的事情。

          以下链接可以提供帮助

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

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

          第 1 步

          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 个小时的时间 :)

          【讨论】:

            【解决方案13】:

            在版本 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)```
            

            【讨论】:

            • 这个对于 MacOS wb_admin_export.py 找到 @ /Applications/MySQLWorkbench.app/Contents/Resources/plugins
            【解决方案14】:

            我在使用 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 替换为您的姓名。

            【讨论】:

              【解决方案15】:

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

              【讨论】:

                【解决方案16】:

                如果您使用带有 XAMPP 的 windows,则需要指明通过 XAMP 的路径。执行以下操作:

                在您的 MySQL 工作台中: 转到“mysqldump工具路径”下的edit -&gt; preferences -&gt; administration输入路径:C:\xampp\mysql\bin\mysqldump.exe 然后点击确定。

                【讨论】:

                  猜你喜欢
                  • 2016-07-12
                  • 1970-01-01
                  • 2021-04-13
                  • 2017-12-06
                  • 2014-04-18
                  • 2016-04-12
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多