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_64
libsから入れます。
# 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_64
MySQL-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!
とりあえず、インストールは完了しました。
これから設定をしていきます。