MariaDB 11.5
Workbench 8.038
遇到Workbench內建mysqldump版本與資料庫mysqldump導致不相容的問題。
伺服器在 11.5 上面運行,在使用 MySQL Workbench 8.038 執行Data Export 時發生錯誤,出現下面畫面:
原因是WORKBENCH版本是8.038,而MYSQL版本是11.5.2,所以是2個版本不合的原因,無法匯出資料。
錯誤訊息
1
2
3
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警告mysqldump Version Mismatch
由於低版本MySQL資料庫的information_schema中沒有名為COLUMN_STATISTICS的資料表,因此可以透過使用–column-statistics=0命令列參數來禁止該行為。
理論上,MySQL Workbench 8.0.13以上版本可以透過取消「使用列統計」,但8.0.14和8.0.15上選項該被錯誤地移除了:
解決方法:
1. 建立一個shell 腳本:mysqldump.cmd
@echo off
"C:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0
2. mysqldump.cmd 取代 mysqldump.exe 的路徑
Open MySQL Workbench > go to Edit > Preferences > Administration, change path to mysqldump tool and point it to mysqldump.cmd
ref: https://stackoverflow.com/questions/51614140/how-to-disable-column-statistics-in-mysql-8-permanently


