mysql-5.6.11 で secure-auth が厳しくなった件

@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() のデフォルト書き換える方針
    • 一緒にビルドされるクライアントプログラムも変わって、副作用が追いきれなくて怖いです...
  • 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 書いたほうがいろいろ応用は効くんじゃないかと思いますけど、みんなどうしてんだろ。