HOKYPOKY.BLOG

MySQLを5.1にアップデート #mysql50# って何!?

少々煽り気味なタイトルで失礼します。

先日Gitの記事を書いて、自分のサーバーのGitのバージョンが古かったことが結局気になってバージョンアップをしたんですね。

たまにしかアップデートしないサーバーなのでPHPとかMySQLもアップデートしようと考えました。使っているOSはCentOS 5.5です。デフォルトで提供されているリポジトリでのMySQLの最新は5.0.x、PHPも5.1.x。

さすが最愛のCentOSさんです。ちーっす。

yumのリポジトリでそこそこ最新のPHPやMySQLを提供しているのがLes RPM de Remiというリポジトリらしいです。(Utter Ramblingsというのもある。)

では早速yumにリポジトリを追加しましょう。

$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

これでremiが使えるようになります。/etc/yum.conf.d/remi.repoを編集し、remiを有効化したりするのですが、今回はそうしません。一時的に有効にする方法でインストールしていきます。
実はこれからMySQLをアップグレードするのですがコンフリクトしてしまいます。一度MySQLを削除します。

$ sudo yum remove mysql

インストールします。ここで先程のremiを一時的に有効にするため –enablerepo=remi オプションをつけます。
これで無闇に最新バージョンを入れるわけではなく基本は(古臭くて)堅実なCentOSのリポジトリを使うことができます。

$ sudo yum --enablerepo=remi install mysql mysql-server

MySQLがアップグレードされました。

$ mysql --version
mysql  Ver 14.14 Distrib 5.1.50, for redhat-linux-gnu (x86_64) using readline 5.1

しかしこれで安心してはいけません。

$ mysql -u USERNAME -p
mysql > show databases;

+---------------------------------+
| Database                        |
+---------------------------------+
| information_schema              |
| #mysql50#com_nijitaro-wordpress |
| mysql                           |
+---------------------------------+
...

com_nijitaro-wordpressというnijitaro.comブログ(ほぼ使ってない)用DBがあるのですが頭に#mysql50#がついています。
MySQL5.1で有効でない文字が使われていてどうのこうのというわけでバージョンアップするとDBの頭につくことがあるようです。DBのデータも5.1用にアップデートしなくてはなりません。

mysql_updateを実行すればいいようです。

$ mysql_update -u USERNAME -p
$ mysql -u USERNAME -p
mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| com_nijitaro-wordpress |
| mysql                  |
+------------------------+
...

ばっちりですね。

PHPも5.3にアップデートします。
タイトルとは関係ないのですがPHP5.3にするついでにMySQLも上げようとしてた時にはまったのでした。
こちらはremiリポジトリを使って簡単にインストールできました。

$ sudo yum --enablerepo=remi update php

これで関係するphp-mysqlなども一度にアップグレードされます。

WordPressなどのプロダクトは、比較的古いシステムでもインストールできるようになっていますが、Webサービスを構築するフレームワークなどではシステム効率、高速化、記述の簡略化などを優先してかバッサリと古いバージョンを切り捨てることもあったりします。
急いでバージョンを上げる必要はないように感じますが、攻めのWebサービスを構築する場合などはポータビリティは後回しにガンガン最新のバージョンで作っていくというのがトレンド(?)のようです。

とはいえ、ボクみたいに入り口で引っかかって悠長にブログなんか書いちゃって肝心のプログラムが全くすすまないなんてことにならないように!!