web-dev-qa-db-ja.com

MySQL 8で列統計を永久に無効にする方法は?

MySQL 8なので、column-statisticsフラグはデフォルトで有効になっています。

したがって、MySQL Workbench 8.0.12でいくつかのテーブルをダンプしようとすると、次のエラーメッセージが表示されます。

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: '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 ';':information_schemaの不明なテーブル 'COLUMN_STATISTICS'(1109)

操作が終了コード2で失敗しました14:50:24 C:\ path\to\my\dumpのエクスポートが1つのエラーで終了しました

MySQL(Workbench)8でcolumn-statisticsを永続的に無効にする方法はありますか?


回避策1

迷惑な回避策は、次の方法で手動で行うことです。

mysqldump --column-statistics=0 --Host=...

回避策2

  1. mysqldumpの名前を変更する
  2. シェルスクリプト(またはWindowsのバッチ)を作成します
  3. このスクリプト内で--column-statistics=0引数を使用して、名前を変更したmysqldumpを呼び出します
  4. mysqldumpとして保存します

回避策3

  1. ダウンロードMySQL 5.7
  2. mysqldumpを抽出する
  3. このmysqldumpを使用してください

たとえば、MySQL Workbenchの場合:編集/設定... /管理/ mysqldumpツールへのパス


前もって感謝します!

14
Flo Bayer

最も簡単な回避策

Mysql Workbench 8.0を使用する場合

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

幸運を祈ります!

9
Troyd Destin

考え方は次のとおりです。各サーバーバージョンには専用のmysqldumpバージョンがあります。理想的ではなく、確かに下位互換性もありませんが、それは状況です。 MySQL Workbenchには1つのmysqldumpバイナリしか含めることができないため、最新のバイナリが使用されます。 MySQL 5.7 Zipをダウンロードしてそこからmysqldumpを使用する方法は、多くの副作用なしで適切な回避策です。どのサーバーをどのダンプバージョンでダンプするかだけ注意する必要があります。

その列の統計フラグをMySQL Workbenchによって自動的に適用する場合は、 https://bugs.mysql.com にバグレポートを提出してください。

更新

一方、この問題のバグレポートが作成されました: https://bugs.mysql.com/bug.php?id=9164

2
Mike Lischke

MysqldumpをサポートするOS(Linuxなど)を実行している場合、別の回避策があります。設定でmysqldumpバイナリへのパスを設定し、パスに--column-statistics = 0引数を含めます。編集>>設定>>管理>> MysqlDumpツールへのパス

1
AppSol