Archive for 8月, 2011

[MySQL] MySQL5.0 から MySQL5.5へのアップグレード方法

日曜日, 8月 14th, 2011

MySQL5.0からMySQL5.5へアップグレードするには、一旦、MySQL5.1にアップグレードする必要があります。
CentOS 5.4のLinux環境でアップグレードをしてみました。

環境

CentOS 5.4 (i386)

基本的な流れ

  1. MySQL 5.1 をインストール
  2. mysql_upgrade コマンドでアップグレード
  3. MySQL 5.5 をインストール
  4. mysql_upgrade コマンドでアップグレード

RPMのダウンロード

あらかじめ、RPMをMySQLのサイトからダウンロードしておきます。
今回はCentOSなのでRedhat用のものをダウンロードしました。

  • MySQL 5.1
    1. MySQL-client-community-5.1.58-1.rhel5.i386.rpm
    2. MySQL-server-community-5.1.58-1.rhel5.i386.rpm
    3. MySQL-shared-compat-5.1.58-1.rhel5.i386.rpm
  • MySQL 5.5
    1. MySQL-client-5.5.15-1.rhel5.i386.rpm
    2. MySQL-server-5.5.15-1.rhel5.i386.rpm
    3. MySQL-shared-5.5.15-1.rhel5.i386.rpm
    4. MySQL-shared-compat-5.5.15-1.rhel5.i386.rpm

バックアップ

作業前に念のためデータのバックアップを取得しておきます。
今回は、MySQLを止めて、データファイルを丸ごとコピーしておきました。

$ sudo /etc/init.d/mysqld stop
$ sudo cp -R /var/lib/mysql /var/lib/mysql.backup

5.0 から 5.1へのアップグレード

CentOS付属のRPMとMySQLから配布されているRPMではコンフリクトしてしまうので、一旦CentOS付属のRPMを削除します。
MySQL依存しているRPMもあわせて、削除する必要があります。

# mysqlに依存するパッケージを一旦削除
$ sudo rpm -e mysql mysql-server php-mysql perl-DBD-MySQL

# MySQL5.1をインストール
$ sudo rpm -ivh MySQL-client-community-5.1.58-1.rhel5.i386.rpm MySQL-server-community-5.1.58-1.rhel5.i386.rpm MySQL-shared-compat-5.1.58-1.rhel5.i386.rpm

# my.cnf がRPMを削除されたときに、リネームされてしまっているので、戻しておく
$ sudo mv /etc/my.cnf.rpmsave /etc/my.cnf

MySQLを起動し、mysql_upgradeでアップグレードします。
エラーが出ますが問題ありません。エラーの出た箇所を自動で修復して、5.1へアップグレードしてくれます。

$ sudo /etc/init.d/mysql start

$ sudo mysql_upgrade
Looking for ‘mysql’ as: mysql
Looking for ‘mysqlcheck’ as: mysqlcheck
Running ‘mysqlcheck with default connection arguments
Running ‘mysqlcheck with default connection arguments
group_coupon.area_coupons OK
group_coupon.coupon_sites OK
group_coupon.coupons
error : Table upgrade required. Please do “REPAIR TABLE `coupons`” or dump/reload to fix it!
majide.wp_comments
<省略>
OK

一旦削除した、RPMを再度インストールして、5.1へのアップグレードは完了です。

$ yum install php-mysql perl-DBD-MySQL

MySQL5.1からMySQL5.5へのアップグレード

5.0から5.1と同じように、MySQLをインストール後、mysql_upgradeを実行します。

$ /etc/init.d/mysql stop

$ rpm -Uvh MySQL-client-5.5.15-1.rhel5.i386.rpm MySQL-server-5.5.15-1.rhel5.i386.rpm MySQL-shared-5.5.15-1.rhel5.i386.rpm MySQL-shared-compat-5.5.15-1.rhel5.i386.rpm

$ /etc/init.d/mysql start

$ mysql_upgrade

USB給電の小型ルータでREGZAをWiFi対応にした

土曜日, 8月 13th, 2011

PLANEXのMZK-MF300Nを使ってテレビをネットに繋げてみた。
MZK-MF300Nはルータとしてもコンバータとしても使える製品で、WiFiを有線に変換することができる。
REGZAに限らずだいたいのテレビはWiFiに対応してないので、コンバーターをはさんで有線にする必要がある。

この製品のいいところは、USBで給電できるところ。
REGZAの外付けHDD用のUSBポートから給電すれば、見た目にスッキリと配線できる。
HDD用のUSBポートに録画用のHDD意外を繋げて給電されるか不安だったが、結果として問題なかった。

設置

テレビの裏側に両面テープで貼り付けておいた

アクトビラで動画を見てみたが、コマ落ちしたりせず、速度も問題なし。

[Amazon.co.jp限定] PLANEX 手のひらサイズ 300Mbps ハイパワー無線LANルータ/アクセスポイント/コンバータ FFP-PKR01 [フラストレーションフリーパッケージ(FFP)]
PLANEX 手のひらサイズ 300Mbps
ハイパワー無線LANルータ
¥2,480

PLANEX 無線LANルータ/アクセスポイント/コンバータ「MZK-MF300N」「FFP-PKR01」専用 USB給電ケーブル SSOP-USB02

PLANEX 「MZK-MF300N」「FFP-PKR01」専用
USB給電ケーブル
¥861

あわせて買いたい

TOSHIBA LED REGZA 22V型 地上・BS・110度CSデジタルハイビジョン液晶テレビ ブラック 22A2(K)

TOSHIBA LED REGZA 22V型

PHP OCI8 Oracle Instant Clientを使ったインストール

土曜日, 8月 6th, 2011

PHPでOracleに接続するには、OCI8モジュールを有効にする必要があります。
以下、Instant Clientを使った場合のPHPのビルド方法。

Instant Client のインストール

Oracleのページから、
「Instant Client Package – Basic」 および「Instant Client Package – SDK」をダウンロードしてあらかじめインストールしておきます。
/usr/lib/oracle/11.2/client/以下にライブラリとツール類が、/usr/include/oracle/11.2/client/ にヘッダ類がインストールされます。

PHPのコンパイルとインストール

–with-oci8、–with-pdo-oci を以下のように設定します。
–with-pdo-ociのほうは、Oracle Clientのバージョン(11.2)を指定する必要があります。

./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client/lib  --with-pdo-oci=instantclient,/usr,11.2 \

LD_LIBRARY_PATHにInstant Clientのパスを指定して、makeを実行します。

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client/lib/
$ make
$ make install

Amazon RDS Oracle のライセンス価格とプラン

木曜日, 8月 4th, 2011

2011年5月から、Amazon Web Service の RDS(Relational Database Service)でMySQLに加えてOracleが
選択できるようになりました。

3つのエディションが利用できます。

RDSでは、Standard Editoin Oneのみですが、ライセンス込みのプランが用意されています。
Oracleライセンスは非常に高価ですので、ちょっと個人でOracleとMySQLを比較してみたいといった場合にピッタリですね。

1時間あたりの利用料金(2011/08現在、Asia Pasific Tokyoの価格)

ライセンス込み ライセンスは自分で別途購入
Edition Standard
Edition
One
Standard
Edition
Enterprise
Edition
Standard
Edition
One
Standard
Edition
Enterprise
Edition
Small $0.18 なし なし $0.13
Large $0.72 なし なし $0.52
Extra Large $0.99 なし なし $0.78
Double Extra Large $1.98 なし なし $1.56
Quadruple Extra Large $3.96 なし なし $3.11

2.8年以上動かすなら、ライセンスを自前購入したほうがお得

Standard Oneのライセンス費用は1ユーザーあたり19,600円です。
最小5ユーザからなので、98,000円が最低のライセンス費用になります。

たとえば、Smallインスタンスの場合、ライセンスあり・なしの価格差は $0.05(約4円、1$=80円換算)です。
198,000 / 4 / 24 = 1020日 で、3年弱、動かすなら、ライセンスを自分で購入したほうがお得です(5ユーザなら)。

ただし、Largeインスタンスになると、急に価格差が開き、半年強で元が取れるようになってしまいます。
このあたりに、Oracle社の商売のうまさを感じますね・・・。

インスタンスサイズ ライセンスあり・なしプラン価格差 元を取るまでの年数
Small $0.05 2.79年
Large $0.2 0.69年
Extra Large $0.21 0.66年
Double Extra Large $0.42 0.33年
Quadruple Extra Large $0.85 0.16年

Standard One Editionと Standard Editionの違い

機能的には同じようです(参考)。
One Editionだと、CPU数(ソケット)に制限があるようですが、Amazon RDSではそのへんは関係なさそうです。

無料のOracleもあるよ

RDSにはありませんが、Oracle Database 10g Express Editionは無料で利用できます。
その代わり、データが4GB/割り当てメモリが1GBまでの制限がつきます。
http://www.oracle.com/technetwork/database/express-edition/overview/index.html

オススメ書籍

Bronze Oracle Database 11g SQL基礎I編(試験番号:1Z0-051) (DVD付) (オラクルマスター教科書)

Bronze Oracle Database 11g SQL基礎I編
Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!
Amazon Web Services ガイドブック
よくわかるAmazonEC2/S3入門 ―AmazonWebServicesクラウド活用と実践 (Software Design plusシリーズ)

よくわかるAmazonEC2/S3入門