konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Old/Zend Core for i5OS

IBM iにMySQL導入(インストール)

IBM 様のミッドレンジサーバ IBM iにMySQLを導入した際の手順を紹介します。
原資料を作成した2008年8月時点の情報を元に、若干修正しています。
実行プログラムを /usr/local/mysql , データを /usr/local/mysqldata に格納する例です。

なお、下記のいずれかを利用してMySQLを導入することもできます。
この説明は下記を利用した場合の手順を記載したものではございませんのでご注意ください。

  1. Zend Core for i5/OS(Ver 2.5以降)
  2. Zend Server for IBM i

使用したソフトウェア及びハードウェア

  1. MySQL ver 5.0.67 IBM i5/OS (SAVF packages) 64bit版
    入手: http://downloads.mysql.com/archives.php から MySQL Database Server 5.0 | IBM i5/OS を選択
  2. (任意)MySQL GUI Tools ver5.0-r12 Windows版
    入手: http://dev.mysql.com/downloads/gui-tools/5.0.html
  3. IBM iSeries 9407-515
  4. IBM i5/OS V5R4M0
  5. Windows XP SP3

事前準備

  1. 前回導入時のごみが残っていないか確認
    /tmp 内の tarファイル
    前回導入が途中で失敗した場合、このファイルが消去されずに残っている場合があります。
    再試行が失敗する原因になります。
    /etc/my.cnf
    データディレクトリの作成は、 INSTMYSQL プログラムの引数 DATA DIRECTORY
    または my.cnfの指定に従って行われます。
    データディレクトリを指定したmy.cnfが残っていると、 DATA DIRECTORY が無視されます。
  2. MySQL用ユーザー作成
    CRTUSRPRF USRPRF(MYSQL) STATUS(*DISABLED) TEXT('MySQL User')
  3. SAVF作成
    CRTSAVF FILE(QGPL/MYSQLINST) TEXT('MySQL 5.0.67 64bit') AUT(*ALL)
  4. MySQL ver5.0.67 IBM i5/OS (SAVF package) 64bit版を FTP で SAVF に転送
    (FTPコマンドは省略します)
  5. MYSQLINSTライブラリーを新規作成して、SAVFをその中に復元。オブジェクト4件が復元されます。
    RSTLIB SAVLIB(MYSQLINST) DEV(*SAVF) SAVF(QGPL/MYSQLINST)
  6. コード化文字セットを一時的に変更
    CHGJOB CCSID(37)

MySQLの導入

  1. インストーラを実行
    MYSQLINST/INSTMYSQLと打鍵し、F4キー押下。
  2. 実行プログラムのインストール先指定
    INSTALLATION DIRECTORY 項目のデフォルト値が /usr/local と表示されます。
    そのまま実行キーを押します。
    これで /usr/local ディレクトリ内に mysql ディレクトリが作成されます。
  3. データの格納先指定
    DATA DIRECTORY 項目のデフォルト値が /QOpenSys と表示されます。
    /usr/local/mysqldata に変更して実行キーを押します。
  4. コード化文字セットを復帰
    CHGJOB CCSID(5035)
  5. 設定ファイル確認
    /etc/my.cnf が下記で作成されます。
    [mysqld]
    datadir = /usr/local/mysqldata
    user = MYSQL
  6. 設定ファイル編集
    /etc/my.cnf に文字コード指定とエラーログ指定を追加。
    なお、インストールされたファイルの内、 support-files/my-medium.cnf などを参考に適宜他の項目も追加すると良いでしょう。
    下記に例を示します。
    character_set_server = utf8
    default_character_set = utf8
    skip_character_set_client_handshake
    [mysql]
    default_character_set = utf8
    [mysqld_safe]
    log-error = /usr/local/mysqldata/error.log
    my.cnf 内容編集後、 *PUBLICに対する書込み権限は除去して置くことをお勧めします。
  1. MySQLの起動
    CALL QP2TERM を実行し、シェルが表示されたらさらに下記を実行。
    ちなみに QSH コマンドでは以降の手順が失敗しました。
    cd /usr/local/mysql/bin
    ./mysqld_safe --user=MYSQL &
    ここまで成功すると、下記のメッセージが表示されます。
    Starting mysqld daemon with databases from /usr/local/mysqldata
  2. SQL実行の確認
    以降でMySQL を制御するデータがある mysql スキーマを使うので、不用意な更新は避けてください。
    ちょっと分かりにくいですが、ユーザー管理テーブルのデータが表示されます。
    ./mysql
    use mysql
    select * from user;
  3. リモートアクセスを可能にします。
    なお、IBM i の外部からアクセス(リモートアクセス)する予定が無ければ、この作業は不要です。
    xxxxxxxxの部分にリモートアクセス用のパスワードを指定してください。
    パスワード無しにもできますが、 root のリモートアクセスを可能にすると非常に危険です。
    grant all privileges on *.* TO 'root'@'%' identified by 'xxxxxxxx' with grant option;
  4. 最後にシェルを終了します。
    exit;

MySQL GUI Toolsで MySQL のデータと動作状況を確認

  1. IBM i にインストールした MySQL を外部からアクセスしてみます。
    Windows PC端末にMySQL GUI Tools ver5.0-r12 Windows版をインストールします。
    起動するだけですので、説明は省略します。
  2. MySQLのデータがリモートで取得できることの確認。
    MySQL GUI Tools のうち、 MySQL Query Browser を起動して行います。
    注意: mysql スキーマ及び information_schema スキーマ内のテーブルは MySQL の制御用です。
    テーブルのデータの 追加、変更または削除を試される際は test スキーマに対して行ってください。
    スタートボタン>プログラム>MySQL>MySQL Query Browserを選択し、
    Server Host 項目に IBM i の IPアドレス、 Username 項目にroot 、
    パスワード項目に、 xxxxxxxx 、Default Schema 項目にtest を入力します。
    OK を押します。
    画面右側にスキーマーとテーブルの一覧が表示されます。
    テーブルをクリックすると全件選択用のSQLが作成され、
    左上のExecuteボタンを押下することにより、データ取得が確認できます。
  3. MySQL の各種情報の確認
    MySQL GUI Tools のうち、 MySQL Administrator を起動して行います。
    スタートボタン>プログラム>MySQL>MySQL Administratorを選択し、
    Server Host 項目に IBM i の IPアドレス、 Username 項目にroot 、
    パスワード項目に、 xxxxxxxx を入力します。
    OK を押します。
    MySQL  Administratorにより、下記のような情報を確認できます。
    ・サーバーに接続中のユーザー (Server Connections)
    ・負荷 (health)
    ・各オブジェクトが使用するサイズやカタログなど

MySQLの停止

CALL QP2TERM を実行し、シェルが表示されたらさらに下記を実行。
cd /usr/local/mysql/bin
./mysqladmin -u root shutdown
成功すると下記のように2行表示されます。ファイル名や日時は環境により異なります。
STOPPING server from pid file /usr/local/mysqldata/www.example.com.pid
# 081231 23:59:59  mysqld ended 
最後に exit; でシェルを終了します。

参考

iMagazine 第5号 第1特集「PHP最新講座」の関連情報


最終更新のRSS