1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL クライアントを 8.x にアップデートしたときに WP-CLI の DB コマンドでエラーが出た時の対処法

Last updated at Posted at 2018-07-13

MySQL クライアント 8.0 系でどうやら仕様が変わったらしく wp db export コマンドで以下のようなエラーが出ました。


$ wp db export
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, 
JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')
FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'wordpress'
AND TABLE_NAME = 'wp_commentmeta';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

以下は僕の環境の MySQL クライアントのバージョン。

$ mysql --version
mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

対処方法

ドキュメントにちゃんと書かれていませんが、WP-CLI の wp db コマンドでは、MySQL 用のコマンドラインオプションをそのまんま使用することができます。

上の不具合では、以下のようなオプションを渡してあげると解決します。

$ wp db export --column-statistics=0 

この件に関しては被害者が多発しそうなのでヘルプに追加しておきましょうかね。

ついでに Wordmove での対処法

このエラーは MySQL の仕様変更によるものなので、Wordmove でも同様のエラーが出ます。

これに対する対処方法は。Movefile に以下のように mysqldump_options: "--column-statistics=0" を記述することです。

local:
  vhost: "http://example.test"
  wordpress_path: "wordpress" # use an absolute path here

  database:
    name: "wordpress"
    user: "wordpress"
    password: "wordpress"
    host: "xxx.xxx.xxx.xxx"
    charset: "utf8"
    mysqldump_options: "--column-statistics=0"
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?