自 MySQL 8 以来,column-statistics
标志默认启用。
因此,如果您尝试使用 MySQL Workbench 8.0.12 转储一些表,您会收到此错误消息:
14:50:22 Dumping db (table_name) Running: mysqldump.exe --defaults-file="c:\users\username\appdata\local\temp\tmpvu0mxn.cnf" --user=db_user --host=db_host --protocol=tcp --port=1337 --default-character-set=utf8 --skip-triggers "db_name" "table_name" mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'db_name' AND TABLE_NAME = 'table_name';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
Operation failed with exitcode 2 14:50:24 Export of C:\path\to\my\dump has finished with 1 errors
在 MySQL (Workbench) 8 中有什么方法可以永久禁用 column-statistics
吗?
解决方法 1
一个烦人的解决方法是通过以下方式手动完成:
mysqldump --column-statistics=0 --host=...
解决方法 2
- 重命名 mysqldump
- 创建一个shell 脚本(或在 Windows 上批处理)
- 在此脚本中使用
--column-statistics=0
参数调用重命名的 mysqldump - 将其保存为 mysqldump
解决方法 3
- 下载MySQL 5.7
- 提取mysqldump
- 使用这个 mysqldump
例如在 MySQL Workbench 中:编辑/首选项.../管理/mysqldump 工具路径
提前致谢!
最佳答案
我的解决方法:
- 创建名为 mysqldump.cmd 的文件,内容为:
@echo off
"c:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0
(必要时替换 mysqldump.exe 的路径)
- 打开 MySQL Workbench 并转到“编辑”>“首选项”>“管理”,更改 mysqldump 工具的路径并将其指向 mysqldump.cmd
关于mysql - 如何永久禁用 MySQL 8 中的列统计信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614140/