CentOS5.5上にMySQLとgroongaをインストールする方法
CentOS5.5上にgroongaをyumで公式の通りインストールしようとするとエラーがでます。
解決のために、いくつか調整したので、経緯を載せておきます。
今回は次の3つを試しました。
- MySQL5.1.53のインストール
- groonga-1.0.5-1のインストール
- mysql-groonga-0.4-1のインストール
このうち1と2は成功しました。
3は現在も調整中です。(MySQLを5.5にした版は後述)
長くなりますが、1と2を追ってみます。
レポジトリ確認
レポジトリを追加して、内容をチェック。
# rpm -ivh http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm # yum update # yum list | grep MySQL MySQL-client-community.x86_64 5.1.53-1.rhel5 groonga MySQL-devel-community.x86_64 5.1.53-1.rhel5 groonga MySQL-embedded-community.x86_64 5.1.53-1.rhel5 groonga MySQL-python.x86_64 1.2.1-1 base MySQL-server-community.x86_64 5.1.53-1.rhel5 groonga MySQL-shared-community.x86_64 5.1.53-1.rhel5 groonga MySQL-test-community.x86_64 5.1.53-1.rhel5 groonga perl-DBD-MySQL.x86_64 3.0007-2.el5 base qt-MySQL.x86_64 1:3.3.6-23.el5 base
MySQLが5.1で揃っています。(デフォルトで入っていたMySQL5.0.77は削除しています。)
性能が改善しているINNODBも使いたいので、5.1バージョンをインストールしたい。
早速個別にやってみると、いくつかエラーがありましたが、次のように直していきました。
順に追っていきます。
groongaレポジトリからのMySQLをyumインストールする場合のエラー
# yum -y install MySQL-client-community
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.nara.wide.ad.jp
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package MySQL-client-community.x86_64 0:5.1.53-1.rhel5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
MySQL-client-community x86_64 5.1.53-1.rhel5 groonga 7.2 M
Transaction Summary
===============================================================================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 7.2 M
Downloading Packages:
MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm | 7.2 MB 00:02
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 1c837f31
groonga/gpgkey | 23 kB 00:00
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 309, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 261, in main
return_code = base.doTransaction()
File "/usr/share/yum-cli/cli.py", line 410, in doTransaction
if self.gpgsigcheck(downloadpkgs) != 0:
File "/usr/share/yum-cli/cli.py", line 510, in gpgsigcheck
self.getKeyForPackage(po, lambda x, y, z: self.userconfirm())
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3476, in getKeyForPackage
keys = self._retrievePublicKey(keyurl, repo)
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3441, in _retrievePublicKey
keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
File "/usr/lib/python2.4/site-packages/yum/misc.py", line 375, in getgpgkeyinfo
raise ValueError(str(e))
ValueError: pgp packet 49 is not user id or subkey, is public-key certificate packet
公開鍵での認証が異なると出ている。困った。
強引ですが直接参照してやってみよう。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.O2hekW: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-client-community ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.4N99xP: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-devel-community ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-embedded-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-embedded-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.VytlKR: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-embedded-communit########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.EQku8n: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-server-community ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-shared-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-shared-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.ubTt4f: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-shared-community ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-test-community-5.1.53-1.rhel5.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/MySQL-test-community-5.1.53-1.rhel5.x86_64.rpm warning: /var/tmp/rpm-xfer.GwnXiw: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:MySQL-test-community ########################################### [100%]
できました。警告は出ていますが。。。
groongaレポジトリからのgroongaをyumインストールする場合のエラー
groongaをyumでインストールしてみましょう。
そのままやると、下のようなエラーが出ます。
# yum -y install groonga
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.nara.wide.ad.jp
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package groonga.x86_64 0:1.0.5-1 set to be updated
--> Processing Dependency: groonga-libs = 1.0.5-1 for package: groonga
--> Processing Dependency: libgroonga.so.0()(64bit) for package: groonga
--> Running transaction check
---> Package groonga-libs.x86_64 0:1.0.5-1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
groonga x86_64 1.0.5-1 groonga 102 k
Installing for dependencies:
groonga-libs x86_64 1.0.5-1 groonga 2.3 M
Transaction Summary
===============================================================================================================================================
Install 2 Package(s)
Upgrade 0 Package(s)
Total download size: 2.4 M
Downloading Packages:
(1/2): groonga-1.0.5-1.x86_64.rpm | 102 kB 00:00
(2/2): groonga-libs-1.0.5-1.x86_64.rpm | 2.3 MB 00:00
-----------------------------------------------------------------------------------------------------------------------------------------------
Total 2.1 MB/s | 2.4 MB 00:01
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 1c837f31
groonga/gpgkey | 23 kB 00:00
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 309, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 261, in main
return_code = base.doTransaction()
File "/usr/share/yum-cli/cli.py", line 410, in doTransaction
if self.gpgsigcheck(downloadpkgs) != 0:
File "/usr/share/yum-cli/cli.py", line 510, in gpgsigcheck
self.getKeyForPackage(po, lambda x, y, z: self.userconfirm())
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3476, in getKeyForPackage
keys = self._retrievePublicKey(keyurl, repo)
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 3441, in _retrievePublicKey
keys_info = misc.getgpgkeyinfo(rawkey, multiple=True)
File "/usr/lib/python2.4/site-packages/yum/misc.py", line 375, in getgpgkeyinfo
raise ValueError(str(e))
ValueError: pgp packet 49 is not user id or subkey, is public-key certificate packet
先ほどと同じく直接参照してみましょう。
groongaの依存関係の修復
groonga-libsがないとエラーが出る。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.6ujU7a: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
groonga-libs = 1.0.5-1 is needed by groonga-1.0.5-1.x86_64
libgroonga.so.0()(64bit) is needed by groonga-1.0.5-1.x86_64libsから入れます。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-libs-1.0.5-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-libs-1.0.5-1.x86_64.rpm warning: /var/tmp/rpm-xfer.lo4S1m: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:groonga-libs ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-1.0.5-1.x86_64.rpm warning: /var/tmp/rpm-xfer.VB3XlS: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:groonga ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-devel-1.0.5-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-devel-1.0.5-1.x86_64.rpm warning: /var/tmp/rpm-xfer.od5kAd: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:groonga-devel ########################################### [100%]
すべてインストールできました。
次はgroonga-tokenizer-mecab
mecabはソースでいれてあったので、いいかなと思ったのでしたが、やっぱり依存で問題がありました。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.3dggk1: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
libmecab.so.1()(64bit) is needed by groonga-tokenizer-mecab-1.0.5-1.x86_64
mecab is needed by groonga-tokenizer-mecab-1.0.5-1.x86_64
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-0.98-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-0.98-1.x86_64.rpm warning: /var/tmp/rpm-xfer.V1O83E: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:mecab ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-devel-0.98-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-devel-0.98-1.x86_64.rpm warning: /var/tmp/rpm-xfer.9lEcse: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:mecab-devel ########################################### [100%] # rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mecab-ipadic-2.7.0.20070801-3.1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mecab-ipadic-2.7.0.20070801-3.1.x86_64.rpm warning: /var/tmp/rpm-xfer.6vsXjO: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:mecab-ipadic ########################################### [100%]
さいごにroonga-tokenizer-mecabを入れます。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/groonga-tokenizer-mecab-1.0.5-1.x86_64.rpm warning: /var/tmp/rpm-xfer.UIVXwz: Header V4 DSA signature: NOKEY, key ID 1c837f31 Preparing... ########################################### [100%] 1:groonga-tokenizer-mecab########################################### [100%]
tokenizerのインストール成功です。
テストしてみましょう。
groongaのテスト
# groonga -n /var/tmp/test
> # groonga /var/tmp/test
> status
[[0,1293664122.8894,0.000178],{"alloc_count":122,"starttime":1293664121,"uptime":1,"version":"1.0.5","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]できていることが確認できました。
MySQLとの連携は次回(追伸に補記)。
追伸 MySQLとの連携
単体のgroongaを入れて、MySQLも用意できました。
その後、ストレージエンジンをMySQLに追加しようとして、mysql-groongaをRPMで入れようとしたら、
依存関係(dependencies)でエラーが出ます。
# rpm -ivh http://packages.groonga.org/centos/5/x86_64/Packages/mysql-groonga-0.4-1.x86_64.rpm
Retrieving http://packages.groonga.org/centos/5/x86_64/Packages/mysql-groonga-0.4-1.x86_64.rpm
warning: /var/tmp/rpm-xfer.XvFszz: Header V4 DSA signature: NOKEY, key ID 1c837f31
error: Failed dependencies:
MySQL-client-community = 5.1.53-1 is needed by mysql-groonga-0.4-1.x86_64
MySQL-server-community = 5.1.53-1 is needed by mysql-groonga-0.4-1.x86_64MySQL-cliendとMySQL-serverが必要とある。
現在の状況を確認。
# rpm -qa | grep MySQL* MySQL-client-community-5.1.53-1.rhel5 MySQL-shared-community-5.1.53-1.rhel5 MySQL-devel-community-5.1.53-1.rhel5 MySQL-server-community-5.1.53-1.rhel5 MySQL-test-community-5.1.53-1.rhel5 MySQL-embedded-community-5.1.53-1.rhel5
きちんとMySQL-client-community5.1.53-1とMySQL-server-community5.1.53-1は入っているのですが。。。
謎です。
RPMはあきらめて、ソースで入れ直そうかな。。。
第一部 完
追伸2 MySQL5.5とmysql-groongaを入れます。
ここからが本当の戦いだったりします。
yumのレポジトリを、コメントのご指摘により更新していただいたので、
再インストールしてみました。
# rpm -Uvh --force http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm Retrieving http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm Preparing... ########################################### [100%] 1:groonga-repository ########################################### [100%]
ストレージエンジンmysql-groongaを入れます。
# yum install mysql-groonga
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* addons: ftp.iij.ad.jp
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-groonga.x86_64 0:0.4-2 set to be updated
--> Processing Dependency: MySQL-client = 5.5.8-1 for package: mysql-groonga
--> Processing Dependency: MySQL-server = 5.5.8-1 for package: mysql-groonga
--> Processing Dependency: groonga-libs for package: mysql-groonga
--> Processing Dependency: libgroonga.so.0()(64bit) for package: mysql-groonga
--> Running transaction check
---> Package MySQL-client.x86_64 0:5.5.8-1.rhel5 set to be updated
---> Package MySQL-server.x86_64 0:5.5.8-1.rhel5 set to be updated
---> Package groonga-libs.x86_64 0:1.0.6-1 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================
Package Arch Version Repository Size
===================================================================================================
Installing:
mysql-groonga x86_64 0.4-2 groonga 263 k
Installing for dependencies:
MySQL-client x86_64 5.5.8-1.rhel5 groonga 17 M
MySQL-server x86_64 5.5.8-1.rhel5 groonga 51 M
groonga-libs x86_64 1.0.6-1 groonga 2.3 M
Transaction Summary
===================================================================================================
Install 4 Package(s)
Upgrade 0 Package(s)
Total download size: 71 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): mysql-groonga-0.4-2.x86_64.rpm | 263 kB 00:00
(2/4): groonga-libs-1.0.6-1.x86_64.rpm | 2.3 MB 00:00
(3/4): MySQL-client-5.5.8-1.rhel5.x86_64.rpm | 17 MB 00:04
(4/4): MySQL-server-5.5.8-1.rhel5.x86_64.rpm | 51 MB 00:05
---------------------------------------------------------------------------------------------------
Total 6.7 MB/s | 71 MB 00:10
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : MySQL-client 1/4
Installing : groonga-libs 2/4
Installing : MySQL-server 3/4
ERROR: 1136 Column count doesn't match value count at row 1
101231 12:25:41 [ERROR] Aborting
101231 12:25:41 [Note] /usr/sbin/mysqld: Shutdown complete
Installation of system tables failed! Examine the logs in
/var/lib/mysql for more information.
You can try to start the mysqld daemon with:
shell> /usr/sbin/mysqld --skip-grant &
and use the command line tool /usr/bin/mysql
to connect to the mysql database and look at the grant tables:
shell> /usr/bin/mysql -u root mysql
mysql> show tables
Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.
Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS. Another information source are the
MySQL email archives available at http://lists.mysql.com/.
Please check all of the above before mailing us! And remember, if
you do mail us, you MUST use the /usr/bin/mysqlbug script!
Installing : mysql-groonga 4/4
/usr/bin/mysql -u root -e " INSTALL PLUGIN groonga SONAME 'ha_groonga.so'; CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_groonga.so'; "
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
run the following command to register groonga storage engine:
/usr/bin/mysql -u root -e "
INSTALL PLUGIN groonga SONAME 'ha_groonga.so';
CREATE FUNCTION last_insert_grn_id RETURNS INTEGER soname 'ha_groonga.so';
"
Installed:
mysql-groonga.x86_64 0:0.4-2
Dependency Installed:
MySQL-client.x86_64 0:5.5.8-1.rhel5 MySQL-server.x86_64 0:5.5.8-1.rhel5
groonga-libs.x86_64 0:1.0.6-1
Complete!
とりあえず、インストールは完了しました。
これから設定をしていきます。