Mroonga/旧インストール
提供: 初心者エンジニアの簡易メモ
2015年6月2日 (火) 15:42時点におけるAdmin (トーク | 投稿記録)による版 (ページの作成:「mroongaをcentos6にmysql5.6のまま入れる方法 事前に、こちらも確認 linux/groongaインストール [ショートカット] ==既存mysql削除== s...」)
mroongaをcentos6にmysql5.6のまま入れる方法
事前に、こちらも確認 linux/groongaインストール [ショートカット]
目次
- 1 既存mysql削除
- 2 mysql5.6インストール
- 3 mysql接続
- 4 normalizerインストール事前設定
- 5 ha_mroonga.so: undefined symbolエラー
- 6 mecabインストール
- 7 mecabが使えるか確認
- 8 groonga-tokenizer-mecabをインストール:
- 9 mroonga_commandのインストール
- 10 mysqlにmroongaエンジンインストール
- 11 mroongaインストール確認
- 12 mysql経由でmecabが使えるか確認
- 13 groonga-normalizer-mysqlをインストール:
- 14 normalizerのインストール確認
- 15 NormalizerMySQLGeneralCIエラー
- 16 スキーマ更新
- 17 mysql再起動
既存mysql削除
sudo yum list installed | grep mysql #削除mysql確認 sudo yum remove mysql*
mysql5.6インストール
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
ha_mroonga.so: undefined symbolエラー
mroongaとgroongaが同一のバージョンでない可能性があるのでgroongaのバージョンを確認する
mysql > INSTALL PLUGIN Mroonga SONAME 'ha_mroonga.so'; ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/ha_mroonga.so' (errno: 2 /usr/lib64/mysql/plugin/ha_mroonga.so: undefined symbol: grn_ii_estimate_size_for_lexicon_cursor) $ groonga --version
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: <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: <NormalizerMySQLGeneralCI>
スキーマ更新
mysql_upgrade -uroot -p
mysql再起動
sudo service mysqld restart