エラー
mysqldump
コマンドでMySQL上のデータのバックアップを取ろうとしたとき、下記のようなエラーが出た。
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)
注視すべきは Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
の部分。
原因と対策
一言で言うと、mysqldump 8以降でそれ以前 (5.7とか) のMySQLサーバに対してダンプを実行したらこの問題が起こるらしい。
これを回避するのは、mysqldumpコマンドに --skip-column-statistics
というオプションを設定する。
$ mysqldump --version mysqldump Ver 8.0.16 for osx10.14 on x86_64 (Homebrew) $ mysqldump --help ... --column-statistics Add an ANALYZE TABLE statement to regenerate any existing column statistics. (Defaults to on; use --skip-column-statistics to disable.) ...
こんな感じにしたらエラーが出なくなった ✌
$ mysqldump --skip-column-statistics --host ...