Mysql

mysqldump 拋出:information_schema 中的未知表 ‘COLUMN_STATISTICS’ (1109)

  • December 28, 2021

每次我嘗試製作時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)

結果是一個不完整的轉儲。奇怪的是,從另一台主機執行的相同命令可以正常工作而不會引發任何錯誤。有人遇到過同樣的問題嗎?

我正在使用 mysql-client8.0並嘗試訪問 mysql5-7伺服器 - 也許這就是原因?

這是由於在**mysqldump8**中預設啟用了一個新標誌。您可以通過添加來禁用它--column-statistics=0。該命令將類似於:

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

檢查此連結以獲取更多資訊。要預設禁用列統計,您可以添加

[mysqldump]
column-statistics=0

到 MySQL 配置文件,轉到/etc/my.cnf~/.my.cnf或直接到/etc/mysql/mysql.cnf.

對於使用 MySQL Workbench 的使用者,Data Export 螢幕上有一個“Advanced Options”按鈕。可以通過設置為 0 禁用“使用列統計資訊”選項。

我尚未確認,但建議以下資訊也是正確的:在版本 8.0.14 中它失去了。在版本 8.0.16 中,它預設執行此操作。

引用自:https://serverfault.com/questions/912162