Kouhei Sutou
kou****@clear*****
2015年 1月 5日 (月) 23:34:17 JST
須藤です。 In <54AA9****@gmail*****> "[groonga-dev,03040] MariaDBバンドル版Mroonga 4.09でMroongaがインストール出来ない問題について" on Mon, 05 Jan 2015 23:13:17 +0900, hiroshi hatake <cosmo****@gmail*****> wrote: > Windows版のMroonga 4.09のリリースが遅れていてすいません。。 大丈夫です! > Windows版Mroongaをビルドして次のようにMroongaをインストールしようとし > た ところ、 > 次のような症状がでてしまい、Mroongaのインストールが完了しません。 > > * mysqld.exeを起動させる > * Mroongaをインストールするsqlをmysqlに読み込ませる。 > * MySQL Clientがserverのコネクションを失う。 おぉ。。。 > --- > cmd> start .\bin\mysqld.exe > cmd> .\bin\mysql -u root < .\share\mroonga\install.sql > > cmd>.\bin\mysql -u root < .\share\mroonga\install.sql これはコピペミスじゃなくて実際に2回実行しているのですか? > 他にログがでていないか調べたところ、 > mysqldがエラーログ([HOSTNAME].err)をdataディレクトリに出していました。 > > --- ... > mysqld.exe!test_plugin_options()[sql_plugin.cc:3968] ここあたりのコードはこうなっていて、 3952 /* 3953 PLUGIN_VAR_STR command-line options without PLUGIN_VAR_MEMALLOC, point 3954 directly to values in the argv[] array. For plugins started at the 3955 server startup, argv[] array is allocated with load_defaults(), and 3956 freed when the server is shut down. But for plugins loaded with 3957 INSTALL PLUGIN, the memory allocated with load_defaults() is freed with 3958 freed() at the end of mysql_install_plugin(). Which means we cannot 3959 allow any pointers into that area. 3960 Thus, for all plugins loaded after the server was started, 3961 we copy string values to a plugin's memroot. 3962 */ 3963 if (mysqld_server_started && 3964 ((o->flags & (PLUGIN_VAR_STR | PLUGIN_VAR_NOCMDOPT | 3965 PLUGIN_VAR_MEMALLOC)) == PLUGIN_VAR_STR)) 3966 { 3967 sysvar_str_t* str= (sysvar_str_t *)o; 3968 if (*str->value) 3969 *str->value= strdup_root(mem_root, *str->value); 3970 } ↓に 3964 ((o->flags & (PLUGIN_VAR_STR | PLUGIN_VAR_NOCMDOPT | 3965 PLUGIN_VAR_MEMALLOC)) == PLUGIN_VAR_STR)) 該当しそうな条件のMroongaの変数は↓くらいなんですよねぇ。 static MYSQL_SYSVAR_STR(default_wrapper_engine, mrn_default_wrapper_engine, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "The default engine for wrapper mode", NULL, NULL, NULL); これ関連のコードをstorage/mroonga/ha_mroonga.ccから削除して ビルドすると直るか確認してもらえませんか? > Mroongaを登録しようとしているところでmysqldが異常終了しているようで > す。。。 > この問題を解決するのに他に必要そうな情報はありますか? 登録するSQLを1つずつ実行して具体的にどのSQLが原因かを調べる のがよさそうに思います。 あとdataディレクトリーにgroonga.logというファイルがあると思 うので、そこになにかないか確認した方がよい気がします。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/