mysql:15663
From: Kouhei Sutou <Kouhei Sutou <kou@xxxxxxxxxx>>
Date: Mon, 30 Jan 2012 14:37:54 +0900 (JST)
Subject: [mysql 15663] [ANN] mroonga 1.20
須藤です。 昨日は今年最初の肉の日なので、MySQL 5.1/5.5/5.6、MariaDB 5.2/5.3で利用可能な全文検索可能なストレージエンジン、mroonga 1.20をリリースしました。 http://mroonga.github.com/ja/docs/news.html#release-1-20 mroongaは、全文検索エンジンであるgroongaをベースとしたMySQLの ストレージエンジンです。Tritonnの後継プロジェクトとなります。 ドキュメント: http://mroonga.github.com/ja/ インストールガイド: http://mroonga.github.com/ja/docs/install.html ○ 注意: アップグレード時にデータベースの再構築が必要 カンのいい方は、今回のリリースでマイナーバージョン(mroongaは ${MAJOR}.${MINOR}${MICRO}というバージョン付け規則になっていま す)が上がっていることから気づいたかもしれませんが、今回のリ リースでは以前のリリースとデータベースの互換性がありません。 そのため、1.20にアップグレードする場合はデータベースを作成し 直す必要があります。アップグレード方法は↑のリリース情報ペー ジにもあるのですが、以下でも紹介します。アップグレードする際 はバックアップも取るなどして慎重に作業してください。 疑問点などある場合は質問してくれれば答えるので、お気軽にどう ぞ。 ○○ 非互換な変更点 このリリースでは、データベースの再作成が必要な変更点が2つあります。 * ストレージエンジン名を"groonga"から"mroonga"へ改名。 * DATE、DATETIME、TIMESTAMP型の値にgroongaが提供する時間の値を使うようにした。 DATE型などの分だけであればmysqldumpでダンプしたものをリスト アするだけでよいのですが、ストレージエンジン名も変わっている のでダンプしたものを編集する必要があります。具体的には "CREATE TABLE" SQL内の"ENGINE=groonga"を"ENGINE=mroonga"に変 更する必要があります。 ○○ 更新手順 まず、mroongaを使っているデータベースをダンプします: % mysqldump MY_MROONGA_DATABASE > database-groonga.dump ダンプファイル中のストレージエンジンを変更します: % sed -e 's/^) ENGINE=groonga/) ENGINE=mroonga/' database-groonga.dump > database-mroonga.dump "CREATE TABLE"の"ENGINE=groonga"だけが"ENGINE=mroonga"に変更 されていることを確認します。"@@ ... @@"行に"CREATE TABLE"が含 まれているかを確認します。この行が"CREATE TABLE"を含んでいた ら、その変更はほぼ間違いなく"CREATE TABLE"用の変更です: % diff -up database-groonga.dump database-mroonga.dump --- database-groonga.dump 2012-01-29 16:53:20.732624670 +0900 +++ database-mroonga.dump 2012-01-29 16:54:47.608420981 +0900 @@ -29,7 +29,7 @@ CREATE TABLE `diaries` ( PRIMARY KEY (`id`), FULLTEXT KEY `title_index` (`title`), FULLTEXT KEY `body_index` (`body`) -) ENGINE=groonga DEFAULT CHARSET=utf8; +) ENGINE=mroonga DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- 既存のデータベースを削除します。 % mysql -u root -e 'DROP DATABASE MY_MROONGA_DATABASE' "mroonga"ストレージエンジンにアップグレードします。Debian GNU/LinuxやUbuntuでは apt-get を使います。CentOSやFedoraでは yum を使います。 Debian GNU/LinuxまたはUbuntuの場合: % sudo apt-get install -y mysql-server-mroonga CentOSまたはFedoraの場合: % sudo yum remove -y mysql-mroonga % sudo yum install -y mysql-mroonga "yum install"の前に"yum remove"をするのを忘れないでください。 今のmroongaのRPMの作りがあまりよくなくて"yum remove"を忘れる とプラグイン管理テーブル(?)が壊れてしまいます。 ソースからインストールする場合(未確認だがこれでいけるはず): % mysql -u root -e "DROP FUNCTION last_insert_grn_id" % mysql -u root -e "UNINSTALL PLUGIN groonga" % sudo make install % mysql -u root -e "INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so'" % mysql -u root -e "CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_mroonga.so'" データベースを作り直します: % mysql -u root -e 'CREATE DATABASE MY_MROONGA_DATABASE' 修正したダンプファイルを使ってデータベースを復旧します: % mysql -u root MY_MROONGA_DATABASE < database-mroonga.dump これで1.20を使うことができます。"SHOW CREATE TABLE テーブル 名"などで"ENGINE=mroonga"になっていることを確認してください。 ○ 変更点 1.11からの変更点は以下の通りです。 http://mroonga.github.com/ja/docs/news.html#release-1-20 1.20リリース - 2012/01/29 ------------------------- 改良 ^^^^ * MySQL 5.5.20に対応。 * MySQL 5.1.61に対応。 * groonga 1.3.0以降を必須にした。 * [非互換] ストレージエンジン名を"groonga"から"mroonga"に変更。 * UTF8_BINコレーションに対応。 [#1150] * strict-aliasingの警告が出ないようにした。 [@issmさんが報告] * DECIMALに対応した。 [#1249] [@Kiskeさんが報告] * [storage mode] HA_KEYREAD_ONLY対応。インデックス内のカラ ム値のアクセスが高速になるはず。 [#1212] * [ストレージモード] float値のマルチカラムインデックスに対応。 * [ストレージモード] double値のマルチカラムインデックスに対応。 * [ストレージモード] enum型とset型をより適切なgroongaのデー タ型に対応付けるようにした。 * [ラッパーモード] REPAIR TABLE対応。 * [ストレージモード] viewでの count(*) に対応。 [#1255] [Takahiro Nagaiさんが報告] * [非互換] DATE、DATETIME、TIMESTAMP型の値にgroongaが提供す る時間の値を使うようにした。 修正 ^^^^ * [debian] replacesとbreaksのmysql-server-groongaのバージョ ンを修正。 [@ytaka5さんが報告] * [doc] 実行結果が間違っていた問題を修正。 [Hidekazu Tanakaさんが報告] * [ラッパーモード] メモリリークを修正。 [montywiさんが報告] 感謝 ^^^^ * @ytaka5さん * Hidekazu Tanakaさん * @issmさん * montywiさん * @Kiskeさん -- 須藤 功平 <kou@xxxxxxxxxx> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270) プログラミングが好きなソフトウェア開発者を募集中: http://www.clear-code.com/recruitment/