每次我尝试制作时,mysqldump都会出现以下错误:
$> mysqldump --single-transaction --host host -u user -p db > db.sql
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM,
'$."number-of-buckets-specified"') FROM
information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db' AND
TABLE_NAME = 'Absence';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
Run Code Online (Sandbox Code Playgroud)
结果是一个不完整的转储。奇怪的是,从另一台主机执行的相同命令可以正常工作而不会引发任何错误。有人遇到过同样的问题吗?
我正在使用 mysql-client8.0并尝试访问 mysql5-7服务器 - 也许这就是原因?
小智 585
这是由于在 mysqldump 8 中默认启用了一个新标志。您可以通过添加 --column-statistics=0 来禁用它。该命令将类似于:
mysqldump --column-statistics=0 --host=<server> --user=<user> --password=<password>
Run Code Online (Sandbox Code Playgroud)
查看此链接以获取更多信息。要默认禁用列统计信息,您可以添加
[mysqldump]
column-statistics=0
Run Code Online (Sandbox Code Playgroud)
到 MySQL 配置文件,例如 /etc/my.cnf 或 ~/.my.cnf。
atj*_*hue 36
对于使用 MySQL Workbench 的用户,数据导出屏幕上有一个“高级选项”按钮。可以通过设置为 0 来禁用“使用列统计信息”选项。
我还没有确认,但以下信息也被认为是正确的:在 8.0.14 版中它丢失了。在 8.0.16 版中,它默认执行此操作。
小智 25
我花了一整天的时间寻找解决方案,并在这里注册只是为了分享我的。
是的,此错误是由于版本差异造成的。
只需从这里下载MySQL 5.7 ZIP 存档:https : //dev.mysql.com/downloads/mysql/并解压缩它,然后从那里使用 mysqldump.exe 文件。
如果您使用的是 MySQL Workbench,则需要通过转到Edit -> Preferences -> Administration(从左侧窗格)来设置您下载的 mysqldump 工具的路径。
希望这可以帮助。
我知道我参加聚会迟到了,但这让我发疯了。如果您想使用最新的 MySQL Workbench(尝试使用最新的 MySQL Workbench 8.0.20),您可以修补此文件:
plugins/wb_admin_export_options.py
Run Code Online (Sandbox Code Playgroud)
在 macOS 中: ( /Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.py) 替换此行:
"column-statistics":["Writing ANALYZE TABLE statements to generate statistics histograms.", "FALSE", "BOOL", ("8.0.2", None)]
Run Code Online (Sandbox Code Playgroud)
有了这个:
"column-statistics":["Writing ANALYZE TABLE statements to generate statistics histograms (set 0 to disable).", "1", "INT", (None, None)]
Run Code Online (Sandbox Code Playgroud)
然后删除.pyo:
rm /Applications/MySQLWorkbench.app/Contents/Resources/plugins/wb_admin_export_options.pyo
最后,再次重新加载Workbench,在 Data Export 页面中,单击“Advanced options...”,您将再次看到 column-statistics 选项(设置 0 禁用并单击 Return 按钮)
小智 5
为了使这个答案更容易,您可以重命名mysqldump,在其位置创建一个shell脚本并mysqldump使用--column-statistics=0参数调用重命名。例如:
重命名mysqldump:
mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump
Run Code Online (Sandbox Code Playgroud)
将以下 shell 脚本保存在其位置:
#!/bin/sh
_mysqldump --column-statistics=0 $@
Run Code Online (Sandbox Code Playgroud)
小智 5
除了皮耶洛https://serverfault.com/a/919403/586669
在 MySQL Workbench 中,有一个选项可以设置 mysqldump 可执行文件的路径。(编辑 - 首选项 - 管理)
因此,您可以创建 .cmd(在 Windows 上)或 .sh 文件(在 Linux 或 Mac 上),如下所示:
mysqldump_nostatistics.cmd:
@ECHO OFF
"C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0
Run Code Online (Sandbox Code Playgroud)
mysqldump_nostatistics.sh:
#!/bin/sh
_mysqldump $@ --column-statistics=0
Run Code Online (Sandbox Code Playgroud)
请注意参数的顺序(与 pierlo 的不同):执行的 dump 命令包含(或可能包含)一个--defaults-file=选项,并且这必须是第一个参数。
另外还需要 echo off,否则工作台无法正确解析命令输出。
小智 5
我在 OSX (11.1) 上使用最新的 mysql 工作台 (8.0.23) 和 mariadb 时遇到了这个问题。我通过选择 mariadb 包中找到的 mysqldump 版本解决了这个问题。
/usr/local/mariadb/mariadb-10.1.37-osx10.13-x86_64/bin/mysqldump
| 归档时间: |
|
| 查看次数: |
218120 次 |
| 最近记录: |