転載・引用について

ユーザ用ツール

サイト用ツール


サイドバー

Site Contents Index

転載・引用について

RSS

tweet:2013:1015_01

CentOS 5.10の準備

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であり、サポートはないので注意すること。

PHP5.1とMySQL5.0

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に取り敢えず上げることを優先する。

MySQL 5.0と5.1の違い

  • ここに、MySQL 5.0と5.1の違いが掲載されているので、ちゃんと確認すること

原則として、MySQL5.0→5.1で、DBのファイルが変更になっている。従って、単純にmysqld 5.0のバイナリーを5.1に置き換えるだけではダメで、mysql_upgradeを実行する必要がある。 その他、若干の非互換の部分があるので、可能な限り確認しておくこと

MySQL 5.0から5.1へのUpgrade

事前に、DBを止めるので、その為に必要な準備をしておくこと。事前アナウンスなどを行う必要があるだろう。

  1. 仮想Serverなら、一度shutdownして、Snapshotを取得すること。物理サーバーならBackupを取っておくこと。
    • こういうところで手を抜くと、必ずあとで痛い目を見ます。マーフィーを侮ってはいけません。
  2. RepositoryにEPELとIUSを追加
  3. mysqlを削除
    • yum erase mysql
      • ここで表示される、削除されるpackageをメモしておくこと。あとで入れ直す必要がある。
  4. MySQL 5.1をInstallする
    • yum -y install mysql51 mysql51-devel mysql51-server mysqlclient15
  5. 削除されたPackageを再投入
    • メモを見て追加すること
  6. my.cnfを修正する
    • default-character-set = utf8や、table_cache → table_open_cache / table_definition_cacheへ変更等、若干の変更点があるので、注意して作業すること
  7. mysqldを起動
  8. DBのUpGradeを実行
    • mysql_upgrade -u root -p
    • 大量にWarningやInfoが出るが、前半で「Tableを更新しろ」と出ている部分は、後半で「更新した」と出てくるので、問題ないことが多い。
    • しかし、もし問題があると大変なので、必ず確認すること。
  9. これで終了

なお、実際には、作業開始前に、chkconfig mysqld off等を行って、できるだけ安全に作業を進めるべき。

最後に

5.1から5.5へのUpgradeは、そのうち書きます。恐らく、今回とほとんど変わらないはず。

このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet/2013/1015_01.txt · 最終更新: 2013/10/15 01:00 (外部編集)