繁体   English   中英

无法从 mysql 工作台导出我的数据库

[英]Can't export my database from mysql workbench

我正在尝试从 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 中的未知表 'column_statistics' (1109)

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

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

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

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

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

编辑 - 首选项 - 管理

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

之后,错误不再出现。

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

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

句法 :

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

欲了解更多信息,请访问此链接

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

[mysqldump]
column-statistics=0

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

总结一下我从 @JustinLaureno 和 @Mohd.Shaizad 的有用评论中所做的工作,在 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
  • 不要添加内嵌注释,否则将不起作用!
 skip_column_statistics = True # This won't work
  • 重启 MySQL 工作台
  • 执行导出

错误仍然在 Workbench 8.0.16 中。

使固定:

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

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

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

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

就我而言,这是一项 phing 任务,但您应该明白这一点。

在此处输入图片说明

我也有同样的问题。我可以通过在 MySQL Workbench 数据导出的高级选项中禁用列统计来解决这个问题。

1:点击高级选项: 在此处输入图片说明

2:在列统计的另一部分中,删除 TRUE 并将其设置为 0 以禁用它。 在此处输入图片说明

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

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

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

在属性“Path to mysqldump Tool”中放置你的 mysqldump.exe 的路径它通常在“C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin\\mysqldump.exe”中找到

转到C:\\Program Files\\MySQL\\MySQL Workbench 8.0 CE\\modules并打开此文件wb_admin_export.py并取消注释“ --column-statistics=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

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 时使用。

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

在 MACOS 上,只需降级到 8.0.13 版,这是我们唯一可以完成的工作。

以下链接可以提供帮助

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

MacOS MySQL 工作台 8.0.13

如果您使用 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 个小时的时间:)

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

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

转到 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM