概要
mysqldumpしようと思ったら、以下のErrorが出て困った件です。
mysqldump -h192.168.xxx.xxx -p -P3306 -uhoge hoge fuga > ~/hoge.fuga.`date '+%Y%m%d%H%M%S'`.sql
#=> Enter password:
#=> mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)
環境
cat /etc/redhat-release
#=> CentOS release 6.5 (Final)
mysqldump --version
#=> mysqldump Ver 10.13 Distrib 5.5.27, for Linux (x86_64)
対応
ググったらこれがヒットした
これを読んだ際に、以下の選択肢が書いてありました。
- v5.5のmysqldumpバイナリファイルを編集して
OPTION
を取り除く - mysqlサーバ側で
SET OPTION
を受け入れるようにする - mysqldumpをv5.6にアップグレードする
で、これでは3.を選択してたんですけど、同様にmysqldump(厳密にはmysql-clientのdistribution?)をアップグレードしてやればよいな、と思って試しました。
mysqldumpのdistributionをv5.5.38にしてみた
というか、別件でinstallしておいたmysqlインスタンスに付属しているmysqldumpを用いたら、普通に動きました。
/path/to/mysqldump --version
#=> mysqldump Ver 10.13 Distrib 5.5.38, for linux2.6 (x86_64)
/path/to/mysqldump -h192.168.xxx.xxx -p -P3306 -uhoge hoge fuga > ~/hoge.fuga.`date '+%Y%m%d%H%M%S'`.sql
#=> Enter password:
cat ~/hoge.fuga.20141119xxxxxx.sql
#=> -- MySQL dump 10.13 Distrib 5.5.38, for linux2.6 (x86_64)
#=> --
#=> -- Host: 192.168.xxx.xxx Database:hoge
#=> -- ------------------------------------------------------
#=> (以下略)
どのver.から直ってるんだろ...
@yoku0825 さんから教えていただきました(2014/11/24 22:58追記)
5.1.72, 5.5.34, 5.6.14, 5.7.2で直っています。
MySQL Bugs: #67507: mysqldump from 5.5 fails with an error when trying to dump data from mysql-5.6
http://bugs.mysql.com/bug.php?id=67507
おわりに
何かの参考になれば幸いです。
追記(2014/11/24 22:58)
というか、Qiitaで検索してみたら割と類似エントリ存在してたな...
- mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1':
- mysqldumpで「SET OPTION SQL_QUOTE_SHOW_CREATE=1」なエラーが出た
- Ubuntu12.04のMySQLクライアントをmysql5.5からmysql5.6にする - Qiita