|
|
| (同じ利用者による、間の5版が非表示) |
| 行1: |
行1: |
| − | mroongaをcentos6にmysql5.6のまま入れる方法
| + | [[mroonga/インストール]] |
| | | | |
| − | 事前に、こちらも確認
| + | [[mroonga/旧インストール]] |
| − | [[linux/groongaインストール]] [ショートカット] | + | |
| | | | |
| − | ==既存mysql削除==
| + | [[mroonga/検索]] |
| − | sudo yum list installed | grep mysql #削除mysql確認
| + | |
| − | sudo yum remove mysql*
| + | |
| | | | |
| − | ==mysql5.6インストール[#qe9027ca]==
| + | [[mroonga/バックアップ・リストア]] |
| − | cd /etc/yum.repos.d/
| + | |
| − | sudo wget http://wing-net.ddo.jp/wing/6/EL6.wing.repo
| + | |
| − | sudo yum --enablerepo=wing install mysql56-server
| + | |
| − | sudo service mysqld start
| + | |
| − | sudo yum --enablerepo=wing install mysql56-mroonga
| + | |
| − | | + | |
| − | ==mysql接続==
| + | |
| − | $ mysql -u[user] -p
| + | |
| − | *起動エラー1
| + | |
| − | Installing MySQL system tables.../usr/libexec/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
| + | |
| − | $ sudo yum install libaio
| + | |
| − | $ sudo yum install libaio-devel
| + | |
| − | *起動エラー2
| + | |
| − | $ sudo tail /var/log/mysqld.log
| + | |
| − | [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
| + | |
| − | $ sudo mysql_install_db --datadir=/var/lib/mysql --user=mysql
| + | |
| − | | + | |
| − | No package mysql56-server availableとなりインストールが失敗する場合
| + | |
| − | http://wing-repo.net/wing/6/x86_64/を確認して、mysql57-serverとかに変えてみる
| + | |
| − | | + | |
| − | ==normalizerインストール事前設定==
| + | |
| − | $ sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
| + | |
| − | $ sudo yum makecache
| + | |
| − | | + | |
| − | groonga-release-1.1.0-1.noarch.rpmのインストールに失敗する場合
| + | |
| − | $ rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
| + | |
| − | ファイル /etc/pki/rpm-gpg/RPM-GPG-KEY-groonga (パッケージ groonga-release-1.1.0-1.noarch から) は、パッケージ groonga-repository-1.0.0-0.noarch からのファイルと競合しています。
| + | |
| − | $ rpm -qa | grep groonga
| + | |
| − | groonga-repository-1.0.0-0.noarch
| + | |
| − | $ sudo rpm -e groonga-repository-1.0.0-0.noarch
| + | |
| − | | + | |
| − | ==mecabインストール==
| + | |
| − | sudo yum -y install mecab mecab-devel mecab-ipadic --disablerepo=* --enablerepo=groonga
| + | |
| − | | + | |
| − | ==mecabが使えるか確認==
| + | |
| − | $ echo "東京都" | mecab
| + | |
| − | 東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
| + | |
| − | 都 名詞,接尾,地域,*,*,*,都,ト,ト
| + | |
| − | | + | |
| − | ==groonga-tokenizer-mecabをインストール:==
| + | |
| − | sudo yum install -y groonga-tokenizer-mecab
| + | |
| − | | + | |
| − | ==mroonga_commandのインストール==
| + | |
| − | mysql> CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
| + | |
| − | | + | |
| − | ==mysqlにmroongaエンジンインストール==
| + | |
| − | mysql>INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so';
| + | |
| − | | + | |
| − | ==mroongaインストール確認==
| + | |
| − | mysql>show engines;
| + | |
| − | | mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| + | |
| − | | + | |
| − | ==mysql経由でmecabが使えるか確認==
| + | |
| − | 以下のようなエラーメッセージがでると使えてない
| + | |
| − | mysql> select mroonga_command("tokenize TokenMecab '東京都'");
| + | |
| − | ERROR 1026 (HY000): [tokenize] unknown tokenizer: <<nowiki />TokenMecab>
| + | |
| − | | + | |
| − | ==groonga-normalizer-mysqlをインストール:==
| + | |
| − | sudo yum install groonga-normalizer-mysql
| + | |
| − | sudo yum install groonga-normalizer-mysql-devel
| + | |
| − | | + | |
| − | ==normalizerのインストール確認==
| + | |
| − | select mroonga_command('normalize NormalizerAuto 東京都');
| + | |
| − | select mroonga_command('normalize NormalizerMySQLGeneralCI 東京都');
| + | |
| − | select mroonga_command('normalize NormalizerMySQLUnicodeCI 東京都');
| + | |
| − | select mroonga_command('normalize NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark 東京都');
| + | |
| − | | + | |
| − | *NormalizerMySQLGeneralCIエラー
| + | |
| − | useでdbを指定しないと上のリストの"NormalizerMySQLGeneralCI"以後は以下エラーとなる
| + | |
| − | ERROR 1026 (HY000): [normalize] nonexistent normalizer: <<nowiki />NormalizerMySQLGeneralCI>
| + | |
| − | | + | |
| − | ==スキーマ更新==
| + | |
| − | mysql_upgrade -uroot -p
| + | |
| − | | + | |
| − | ==mysql再起動==
| + | |
| − | sudo service mysqld restart
| + | |
| − | | + | |
| − | ==検索テスト==
| + | |
| − | CREATE TABLE diaries (
| + | |
| − | id INT PRIMARY KEY AUTO_INCREMENT,
| + | |
| − | content VARCHAR(255),
| + | |
| − | FULLTEXT INDEX (content)
| + | |
| − | ) ENGINE = mroonga DEFAULT CHARSET utf8;
| + | |
| − | insert into diaries (content) values ("明日は晴れです");
| + | |
| − | insert into diaries (content) values ("明日は曇りです");
| + | |
| − | select * from diaries where match(content) against('晴れ');
| + | |
| − | | id | content |
| + | |
| − | +----+-----------------------+
| + | |
| − | | 3 | 明日は晴れです |
| + | |
| − | | + | |
| − | ==スコア表示==
| + | |
| − | select *,match(content) against('明日') AS score from diaries where match(content) against('明日') order by match(content) against('明日');
| + | |
| − | | id | content | score |
| + | |
| − | +----+-----------------------+--------+
| + | |
| − | | 3 | 明日は晴れです | 262145 |
| + | |
| − | | 4 | 明日は曇りです | 262145 |
| + | |
| − | | + | |
| − | | + | |
| − | ==複数ワードを含む文章の検索方法==
| + | |
| − | ×select * from diaries where match(content) against('php開発');
| + | |
| − | ○select * from diaries where match(content) against('php') AND match(content) against('開発');
| + | |
| − | | + | |
| − | mecabであらかじめ検索ワードを分かち書きをして、ANDでつなげて検索する
| + | |
| − | | + | |
| − | ==パーサをmecabへ変更==
| + | |
| − | mysql5.5ではmy.cnfを変更することでパーサを変更はできない。
| + | |
| − | [mysqld]
| + | |
| − | mroonga_default_parser=TokenMecab
| + | |
| − | | + | |
| − | 以下のようにindexにコメントをつけなければならない。
| + | |
| − | ALTER TABLE diaries DROP INDEX idx_name1;
| + | |
| − | ALTER TABLE diaries ADD FULLTEXT INDEX idx_name1(name) COMMENT 'parser "TokenMecab"'
| + | |
| − | | + | |
| − | create tableではこのように
| + | |
| − | CREATE TABLE ~
| + | |
| − | FULLTEXT KEY `idx_name` (`name`) COMMENT 'parser "TokenMecab"'
| + | |
| − | normalizerも同時に指定する方法
| + | |
| − | CREATE TABLE ~
| + | |
| − | FULLTEXT KEY `idx_name` (`name`) COMMENT 'parser "TokenMecab", normalizer "NormalizerAuto"'
| + | |
| − | | + | |
| − | 参考
| + | |
| − | http://dfcblog.net/2013/02/mroonga%E3%81%A7mecab%E3%82%92%E4%BD%BF%E3%81%86%E9%9A%9B%E3%81%AB%E3%81%AF%E3%81%BE%E3%81%A3%E3%81%9F%E8%A9%B1.html
| + | |
| − | | + | |
| − | ==log==
| + | |
| − | $ sudo tail -f /var/lib/mysql/groonga.log
| + | |
| − | $ sudo tail -f /var/log/message | grep mroonga
| + | |
| − | | + | |
| − | ==Unknown storage engine 'mroonga'のエラー==
| + | |
| − | $ /etc/rc.d/init.d/mysqld startでスタートしていれば $ /etc/rc.d/init.d/mysqld stopとし
| + | |
| − | | + | |
| − | $ service mysqld start #再度startする
| + | |
| − | | + | |
| − | ==NormalizerMySQLGeneralCIが使えないエラー==
| + | |
| − | ERROR 138 (HY000): NormalizerMySQLGeneralCI normalizer isn't found for utf8_general_ci. Install groonga-normalizer-mysql normalizer. NormalizerAuto is used as fallback.
| + | |
| − | > select mroonga_command('normalize NormalizerMySQLGeneralCI 東京都');
| + | |
| − | が使えるか確認しよう。
| + | |
| − | | + | |
| − | ==ERROR 1016 (HY000): offset out of range ==
| + | |
| − | selectでこのエラーが出たらDBが壊れています。
| + | |
| − | | + | |
| − | 参考:https://teratail.com/questions/10468
| + | |
| − | | + | |
| − | ==ERROR 1016 (HY000): mroonga: failed to open table==
| + | |
| − | selectでこのエラーが出たらDBが壊れています。
| + | |
| − | | + | |
| − | ==crontabが使えなくなる?==
| + | |
| − | wingリポジトリ修正
| + | |
| − | vi /etc/yum.repos.d/EL6.wing.repo
| + | |
| − | enabled=0をenabled=1へ
| + | |
| − | | + | |
| − | ==renameでエラー==
| + | |
| − | テーブルをrenameをすると以下エラーとなり検索できないので注意。
| + | |
| − | エラーERROR 1191 (HY000): Can't find FULLTEXT index matching the column list
| + | |
| − | (追記201502:renameしても問題なくなってた)
| + | |
| − | | + | |
| − | ==カラム名変更時の注意==
| + | |
| − | エラーになるのでAlter Changeは使わないように。(alter の add,dropはok) [2015/2時点]
| + | |
| − | ERROR 2006 (HY000): MySQL server has gone away
| + | |
| − | No connection. Trying to reconnect...
| + | |
| − | Connection id: 51
| + | |
| − | | + | |
| − | ==参照==
| + | |
| − | MySQL5.5でMroonga http://nob-log.info/2013/04/25/upgrade-to-mysql5-5-from-mysql5-1-the-mroonga/
| + | |
| − | | + | |
| − | MySQLで高速全文検索を実現するMroongaでTokenMeCabが使えないときの対処方法 http://qiita.com/groonga/items/58220bfa6b2a990f5cd2
| + | |