@yoku0825 さんが http://yoku0825.blogspot.jp/2013/05/mysql56mysql50ioerror-2049.html に書かれている通り
- mysql-5.6.11 で secure-auth が厳しくなった (Bug#15977433 だが非公開?)
- slave io thread とか federated が secure-auth=off でもそれを参照してない
ために、 master が old password 使っているとどうやっても replication が繋がらなくなってしまいました。やりたいことはわかるので、まあ仕様ってことで理解したいものの、いくつか試行錯誤した結果、現実的には厳しい。
mysqld の secure-auth が client としての挙動に影響するのはなんかおかしい気もするし、まじめにやるなら別の変数用意して参照するとか、もうそれ用に auth plugin 作っちゃえばいいんですけれど、今の流れではそこまで気合を入れる気も起きない。
- @yoku0825 さんパッチ (上のリンク参照)
- mysql_init() のデフォルト書き換える方針
- 一緒にビルドされるクライアントプログラムも変わって、副作用が追いきれなくて怖いです...
- old_password_auth_client でエラーにしない (5.6.10 に戻す)
- どういうバグが報告されてるのか分からないし、他のハマリポイントを隠蔽しちゃうのがイヤ
- http://bazaar.launchpad.net/~mysql/mysql-server/5.6/revision/4755
- slave io thread のとこだけ secure-auth 見ない
- クソ1行パッチ。影響範囲は少ない (と信じたい)
--- ./sql/rpl_slave.cc.orig 2013-04-05 21:27:18.000000000 +0900 +++ ./sql/rpl_slave.cc 2013-05-25 06:11:44.615072089 +0900 @@ -6669,6 +6669,8 @@ /* This one is not strictly needed but we have it here for completeness */ mysql_options(mysql, MYSQL_SET_CHARSET_DIR, (char *) charsets_dir); + mysql->options.secure_auth= FALSE; + if (mi->is_start_plugin_auth_configured()) { DBUG_PRINT("info", ("Slaving is using MYSQL_DEFAULT_AUTH %s",
追記: さいしょ ``mysql_options(mysql, MYSQL_SECURE_AUTH, "off");'' と書いてたのはウソですすいません
どうなんですかね、やっぱ auth plugin 書いたほうがいろいろ応用は効くんじゃないかと思いますけど、みんなどうしてんだろ。