mysqldumpで Couldn’t execute … と表示されるときの解決法

Mysql

公開: 2019-09-16

更新: 2019-09-16

こんにちは、お読みいただきありがとうございます。 ケン(@gootablog)です。

僕は個人のブログ(WordPress)の開発環境をDockerで作っています。そしてデプロイやバックアップをとるのには、とても便利なWordmoveというツールを使っています。

そんな環境でmysqldumpコマンドでバックアップを取ろうと思って実行するとmysqldump: Couldn't execute 'SELECT COLUMN_NAME, ...というエラーメッセージが表示され実行できませんでした。

その解決法を残しておきます。

環境

  • MySQL(docker) ver5.7
  • リモートの MySQL ver5.7
  • MacのローカルMySQL ver8.0.16

解決方法

--column-statistics=0というフラグを付けるだけです。ex) mysqldump --host=127.0.0.1 --user=*** --password=*** --column-statistics=0

Mysql8でこのフラグが追加されてデフォルトで有効になっています。その状態でver5のMySQLのダンプをしようとすると発生するようです。

WordmoveはDockerではなくローカルのver8を実行していたのでこのような現象になっていました。