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
サーバーにアクセスしようとしています-おそらくそれが理由ですか?
これは、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構成ファイル。
MySQL Workbenchを使用している場合、データエクスポート画面に[詳細オプション]ボタンがあります。 「列統計を使用」オプションは、0に設定することで無効にできます。
私は確認していませんが、以下の情報も当てはまると提案されています:バージョン8.0.14にはそれがありません。バージョン8.0.16では、デフォルトでこれを行っています。
私は一日中解決策を探して過ごし、私のものを共有するためだけにここにサインアップしました。
はい、おそらくこのエラーはバージョンの違いが原因です。
ここからMySQL 5.7 Zip Archiveをダウンロードしてください: https://dev.mysql.com/downloads/mysql/ andそれを解凍し、そこからmysqldump.exeファイルを使用します。
MySQL Workbenchを使用している場合は、編集->設定->管理からダウンロードしたmysqldumpツールへのパスを設定する必要があります(から左側のペイン)。
お役に立てれば。
この答え を簡単にするために、mysqldump
の名前を変更し、その場所にシェルスクリプトを作成して、名前を変更したmysqldump
を--column-statistics=0
引数。例えば:
Mysqldumpの名前を変更します。
mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump
その場所に次のシェルスクリプトを保存します。
#!/bin/sh
_mysqldump --column-statistics=0 $@
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
XAMPPを使用していますが、MySQL Workbenchはバージョンの不一致について警告します。 XAMPPのmysql.exeとmysqldump.exeを指すようにMySQL Workbenchを設定しました。
[編集]-> [設定]-> [管理]に移動し、それぞれのパスを設定します。
これは少なくともバージョン8.0.14で機能します。そのため、バンドル版のmysqlおよびmysqldumpの使用を避けたい場合もあります。
私の状況では、mac-OSを使用しています。ちなみに、[mysqldump] column-statistics=0
ディレクトリの下に配置されたmy.cnf
ファイルの/usr/local/etc
フィールドがありました。そのフィールドを削除すると、問題が修正されました。 (ない:mysqlのバージョンは5.7で、homebrew経由でインストールされます)。
同じ問題がありました。複数のデータテーブルを他のスキーマから既存のスキーマにマージし、マージされたデータを自己完結型スクリプトファイルにエクスポートすると発生します。 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にした。その後、動作します。