某redhat Inc.は、RHE 5.10をReleaseするに際して、MySQLを5.5に上げる決断をした。 これは、今までのRHEのPatchポリシーを考えるとかなり大掛かりな変更であって、対応する作業がかなり大掛かりになる。
ここで、取り敢えず、CentOS 5.9 において、PHP5.1を利用しつつMySQLを5.1に上げる方法を記載しておく。
最終的には、MySQLを5.5にしなければならないが、RHEの移行ポリシーも 5.0→5.1→5.5の順に上げるように指示しているので、まずは、5.0→5.1の更新を行う。
なお、RHEは、移行のために mysqld 5.1を準備しているが、これは移行時のためのreleaseであり、サポートはないので注意すること。
RHE 5シリーズ、CentOS 5シリーズでは、PHP 5.1及びMySQL5.0を採用していた。PHP5.1からMySQLを利用する場合、PDO_MYSQL.soかMYSQL.soを利用するが、 このDSO(Dynamic Shared Object)はlibmysqlclientをlinkしている。これが、何らかの悪影響を及ぼす可能性がある。
また、本来であればPHP5.1は、そもそもメンテナンスも終了しているし、Security的にも望ましくないVersionなので、更新するのが本道である。
しかし、一般的に、PHPで記載されたSoftwareを更新するのは非常に難しいので、諦めて PHP5.1 + MySQL 5.1に取り敢えず上げることを優先する。
原則として、MySQL5.0→5.1で、DBのファイルが変更になっている。従って、単純にmysqld 5.0のバイナリーを5.1に置き換えるだけではダメで、mysql_upgradeを実行する必要がある。 その他、若干の非互換の部分があるので、可能な限り確認しておくこと
事前に、DBを止めるので、その為に必要な準備をしておくこと。事前アナウンスなどを行う必要があるだろう。
rpm -Uvh epel-release-5-4.noarch.rpm
rpm -Uvh ius-release-1.0-11.ius.el5.noarch.rpm
yum erase mysql
yum -y install mysql51 mysql51-devel mysql51-server mysqlclient15
default-character-set = utf8
や、table_cache → table_open_cache / table_definition_cache
へ変更等、若干の変更点があるので、注意して作業することmysql_upgrade -u root -p
なお、実際には、作業開始前に、chkconfig mysqld off
等を行って、できるだけ安全に作業を進めるべき。
5.1から5.5へのUpgradeは、そのうち書きます。恐らく、今回とほとんど変わらないはず。