web-dev-qa-db-ja.com

mysqldumpがスローする:information_schema内の不明なテーブル「COLUMN_STATISTICS」(1109)

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-client 8.0を使用してmysql 5-7サーバーにアクセスしようとしています-おそらくそれが理由ですか?

183
manifestor

これは、mysqldump 8でデフォルトで有効になっている新しいフラグによるものです。--column-statistics = 0を追加することで無効にできます。コマンドは次のようになります。

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

詳細は this link を確認してください。デフォルトで列統計を無効にするには、次を追加できます

[mysqldump]
column-statistics=0

/etc/my.cnfや〜/ .my.cnfなどのMySQL構成ファイル。

268
cristhiank

MySQL Workbenchを使用している場合、データエクスポート画面に[詳細オプション]ボタンがあります。 「列統計を使用」オプションは、0に設定することで無効にできます。

私は確認していませんが、以下の情報も当てはまると提案されています:バージョン8.0.14にはそれがありません。バージョン8.0.16では、デフォルトでこれを行っています。

30
atjoedonahue

私は一日中解決策を探して過ごし、私のものを共有するためだけにここにサインアップしました。

はい、おそらくこのエラーはバージョンの違いが原因です。

ここからMySQL 5.7 Zip Archiveをダウンロードしてください: https://dev.mysql.com/downloads/mysql/ andそれを解凍し、そこからmysqldump.exeファイルを使用します。

MySQL Workbenchを使用している場合は、編集->設定->管理からダウンロードしたmysqldumpツールへのパスを設定する必要があります(から左側のペイン)。

お役に立てれば。

20
DodiX

最も簡単な回避策

Mysql Workbench 8.0を使用する場合

  • 「データのエクスポート」タブを開きます
  • [詳細オプション]をクリックします enter image description here
  • その他の見出しの下で、列統計を0に設定します enter image description here
  • 再度エクスポート enter image description here

がんばって!

7
anson

この答え を簡単にするために、mysqldumpの名前を変更し、その場所にシェルスクリプトを作成して、名前を変更したmysqldump--column-statistics=0引数。例えば:

Mysqldumpの名前を変更します。

mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump

その場所に次のシェルスクリプトを保存します。

#!/bin/sh

_mysqldump --column-statistics=0 $@
5
pierlo

MacOSの場合、「column-statistics」を表示するには古いバージョン(8.0.13)が必要です。バージョン8.0.14と8.0.15をテストしましたが、どちらも「column-statistics」を表示していないためです。

したがって、「column-statistics」を調整するには、バージョン8.0.13 https://downloads.mysql.com/archives/get/file/mysql-workbench-community-8.0.13-macos-x86_64。 dmg

2
Edimar Barbosa

XAMPPを使用していますが、MySQL Workbenchはバージョンの不一致について警告します。 XAMPPのmysql.exeとmysqldump.exeを指すようにMySQL Workbenchを設定しました。

[編集]-> [設定]-> [管理]に移動し、それぞれのパスを設定します。

これは少なくともバージョン8.0.14で機能します。そのため、バンドル版のmysqlおよびmysqldumpの使用を避けたい場合もあります。

1
Dean Or

私の状況では、mac-OSを使用しています。ちなみに、[mysqldump] column-statistics=0ディレクトリの下に配置されたmy.cnfファイルの/usr/local/etcフィールドがありました。そのフィールドを削除すると、問題が修正されました。 (ない:mysqlのバージョンは5.7で、homebrew経由でインストールされます)。

0
Hatip Aksunger

同じ問題がありました。複数のデータテーブルを他のスキーマから既存のスキーマにマージし、マージされたデータを自己完結型スクリプトファイルにエクスポートすると発生します。 column-statistics = 0を変更しようとしましたが、結果は次のとおりでした、

C:\xampp\mysql\bin>mysqldump --column-statistics=0 --Host=loalhost --user root --passwod
mysqldump: unknown variable 'column-statistics=0'

だから私は助けなかった。私が見つけたMySQLログを分析します

2019-01-21 11:31:30 1050 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2019-01-21 11:31:30 4176 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

innodb_buffer_pool_sizeのサイズに関する不満。 24MBにした。その後、動作します。

0