MySQL 5.1 on Cent OS 5.3

| コメント(2) | トラックバック(0)

MySQL 5.1がGAになってからしばらく経ったのに使った事無かったので、今やっている実験プロジェクトで採用してみた。

CentOSの標準パッケージだとmysqlのバージョンは5.0。mysql関連パッケージもmysql-5.0に依存しているので、その辺をクリアする必要がある。

とりあえず手順やエラーメッセージのみを簡潔に説明。

1. 既存のMySQLパッケージを(インストールされていれば)アンインストール

2. MySQL公式サイトからのRPMパッケージをインストール
この辺りからパッケージをダウンロード。使用したのは以下のもの。

  • MySQL-client-community-5.1.34-0.rhel5.i386.rpm
  • MySQL-server-community-5.1.34-0.rhel5.i386.rpm
  • MySQL-shared-community-5.1.34-0.rhel5.i386.rpm

rpm -ivhで普通にインストールすればOK。

ここまでは特に問題ないと思うんだけど、php-mysqlをインストールしようとして問題発生。

3. php-mysqlのインストール

[root@host downloads]# yum install php-mysql
(中略)
mysql-5.0.45-7.el5.i386 from base has depsolving problems
  --> mysql conflicts with MySQL-server-community
Error: mysql conflicts with MySQL-server-community

php-mysqlはCentOS標準のmysqlパッケージに依存してるんだけど、mysqlは先ほどインストールしたMySQL-server-communityと競合している。

rpmコマンドなら出来るけど、yumコマンドだと依存性を無視したインストールが出来ない。なので、php-mysqlをダウンロードしてrpmコマンドでインストールする必要がある。その為にはyum-utilsパッケージに含まれているyumdownloaderコマンドを使う。

[root@host downloads]# yum install yum-utils
[root@host downloads]# yumdownloader php-mysql
[root@host downloads]# rpm -ivh php-mysql-5.1.6-23.2.el5_3.i386.rpm
エラー: 依存性の欠如:
        libmysqlclient.so.15 は php-mysql-5.1.6-23.2.el5_3.i386 に必要とされています
        libmysqlclient.so.15(libmysqlclient_15) は php-mysql-5.1.6-23.2.el5_3.i386 に必要とされて います
        php-pdo は php-mysql-5.1.6-23.2.el5_3.i386 に必要とされています

とりあえずphp-pdoは普通にyumでインストール。

libmysqlclient.soに関してだけど、MySQL 5.1をインストールするとインストールされるのはlibmysqlclient.so.16。php-mysql-5.1が必要としているのはlibmysqlclient.so.15。ここで選択肢は2つかなぁと思う。

  • 16から15にシンボリックリンクを貼る
  • libmysqlclient.so.15をインストール

前者は簡単なので、今回は後者の方法を試してみた。libmysqlclient.so.15はmysql-5.0.45-7.el5.i386.rpmに含まれている。従って以下のような方法で取り出して、/usr/lib以下にコピー。

[root@host downloads]# yumdownloader mysql
[root@host downloads]# rpm2cpio mysql-5.0.45-7.el5.i386.rpm | cpio -id
[root@host downloads]# cp -a usr/lib/mysql/libmysqlclient* /usr/lib

これで準備完了。後は依存関係を無視してphp-mysqlをインストールして、apacheを再起動すれば、PHPのMySQL関連関数を使えるようになる。

[root@host downloads]# rpm -ivh --nodeps php-mysql-5.1.6-23.2.el5_3.i386.rpm
[root@host downloads]# /etc/init.d/httpd restart

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/770

コメント(2)

/usr/bin/mysql_install_db
最初からインストールするとき、最後に以上の処理の必要があるみたいです。

コメントありがとうございます。

手元に環境がないので、MySQL-* (MySQL本家からのパッケージ)だとどうだかは確認できないのですが、CentOSのmysql-5.0.x パッケージだと、/etc/init.d/mysqld の中で、dataディレクトリがなければ mysql_install_db を勝手に実行するようになっていますね。

本家のパッケージがどうなってるかはともかく、もし mysql_install_db が実行されていない場合は手動で実行する必要がある、というのは認識しておく必要がありそうですね。

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2009年5月23日 12:13に書いたブログ記事です。

ひとつ前のブログ記事は「ミスユニバースジャパン2009」です。

次のブログ記事は「秋葉原」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ