3通りの方法で整備できる開発環境

Mac OS XでAMP構築

Shin.鶴長

2008/5/19

MySQLのインストール

- PR -

 ApacheとPHPの動作が確認できたところで、MySQLをインストールします。MySQLのインストールパッケージは開発元のMySQL ABからダウンロードできます。http://dev.mysql.com/downloads/からMySQL5.0の「Community Server」版をダウンロードします。

 Mac OS X用には「package format」版と、「TAR packages」版が用意されていますが、ここではインストーラ付きバイナリパッケージのpackage format版を使用します。

 ダブルクリックするだけで、ファイルの配置やリンクの作成などの作業が自動で行われます。TAR packages版は手動インストールが必要なtarアーカイブです。ファイルの配置を手動で行うことができるため、任意のフォルダにMySQLをインストールできます。

 package format版では「/usr/local/mysql」にインストール先が固定されます。CPUタイプに合ったファイルをダウンロードし、インストールします。なおMac OS X 10.5からPowerPC版のパッケージ配布は行われていません。PowerPCでLeopardを利用している場合は、Mac OS X 10.4用のパッケージを利用します。

 MySQL ABからpackage format版をダウンロードした後、画面6のようにインストールイメージが自動でマウントされます。マウントされない場合は、ダウンロードしたdmgファイルをダブルクリックし、イメージディスクをマウントします。マウントされたイメージディスクにMySQL本体のpkgファイルと起動アイテムのpkgファイルを見つけることができます。

画面6
画面6 マウントされたMySQLのインストールイメージ

 MySQL本体のpkgファイル「mysql-5.0.<バージョン>-<OSバージョン>-<CPUタイプ>.dmg」(注7)をダブルクリックし、インストールを実行します(画面7)。インストール先は「/usr/local/mysql-5.0.<バージョン>-<OSバージョン>-<CPUタイプ>/」フォルダになります。

注7:PowerPC版Mac OS X 10.4用のMySQL5.0.51では「mysql-5.0.51b-osx10.4-powerpc」などとなります

 続いて起動アイテムをインストールします。起動アイテムのインストール先は「/Library/StartupItems/」フォルダになります。

画面7
画面7 MySQL本体のインストール

$ ls -l /usr/local/

(省略)

lrwxr-xr-x 1 root wheel 29 5 9 01:19 mysql -> mysql-5.0.51b-osx10.4-powerpc
drwxr-xr-x@ 20 XXXX staff 680 5 9 01:19 mysql-5.0.51b-osx10.4-powerpc

$ ls -l /Library/StartupItems/MySQLCOM/

(省略)

-rwxr-xr-x 1 root wheel 1241 4 23 21:02 MySQLCOM
-rw-r--r-- 1 root wheel 471 4 23 21:02 StartupParameters.plist

 インストール後、MySQLを起動します。続けてMySQL管理者パスワードを設定し、テスト用データベースとテーブルを作成します。テストテーブルにはサンプルデータを投入し、後ほど作成するサンプルPHPスクリプトで利用できるようにします。最後にテーブルの参照権限を設定します。

(MySQLの起動)
$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
Starting MySQL database server

(MySQL管理者パスワードの設定)
$ sudo /usr/local/mysql/bin/mysqladmin password MySQLの管理者パスワード

(サンプルデータベースの作成)
$ /usr/local/mysql/bin/mysqladmin -u root -p create AMP_TEST_DB
Enter password: ←MySQLの管理者パスワードを入力

(TEST_TABLEの作成とサンプルデータの投入、権限の設定)
$ /usr/local/mysql/bin/mysql -u root -p AMP_TEST_DB
Enter password: ←MySQLの管理者パスワードを入力

mysql> CREATE TABLE `TEST_TABLE` (  ←テストテーブルの作成
-> `ID` int(11) NOT NULL,
-> `NAME` varchar(20) default NULL,
-> `MEMO` varchar(20) default NULL,
-> PRIMARY KEY (`ID`)
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO TEST_TABLE VALUES(1, 'A', 'MEMO_A'),(2, 'B', 'MEMO_B');  ←サンプルデータの挿入
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM TEST_TABLE;
+----+------+--------+
| ID | NAME | MEMO   |
+----+------+--------+
|  1 | A    | MEMO_A |
|  2 | B    | MEMO_B |
+----+------+--------+
2 rows in set (0.00 sec)

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON AMP_TEST_DB.TEST_TABLE to 'php'@'localhost' IDENTIFIED BY 'password'; ←権限の設定
Query OK, 0 rows affected (0.00 sec)

mysql> \q ←クエリ入力モードの終了
Bye

 以上の手順で、次のようにデータベース、テーブル、ユーザーが設定されました。なおMySQL ABのパッケージを使用した場合、デフォルトでは、テーブル名・データベース名のアルファベット大文字・小文字の区別はありません。

データベース AMP_TEST_DB
テーブル TEST_TABLE
ユーザー php
パスワード password

 サンプルPHPスクリプトを作成し、MySQLへの接続をテストします。次のようなPHPスクリプトをルートドキュメントやホームディレクトリの「サイト」フォルダ内に用意します。Safariなどのブラウザからアクセスし、画面8のように表示されていることを確認します。

<?php
mysqli_connect("127.0.0.1","php","password") or die("Error MySQL First Test");
echo "Success MySQL First Test";
?>

画面8
画面8 PHPスクリプトの動作確認(1)

 なおローカルMySQLサーバの指定に「localhost」を用いる場合は、PHPの設定を修正する必要があります。/etc/下にphp.iniファイルを用意し、修正します。MySQLでは「localhost」はソケットファイルを使用した接続が行われ、「127.0.0.1」では、TCP/IPを利用した接続が行われます。「localhost」を使用する場合、MySQLのソケットファイルの保存先をphp.iniに登録する必要があります。

$ cd /etc
$ sudo cp php.ini.default php.ini ←php.iniのひな型ファイルをコピーします
$ sudo chmod o+w php.ini ←編集するため、書き込み権限を設定します

(php.iniの修正)
mysql.default_socket = /tmp/mysql.sock
...
mysqli.default_socket = /tmp/mysql.sock

 SELECTクエリでサンプルデータを抽出するPHPスクリプトは次のようになります。先ほどと同様に、MySQL拡張API「mysqli」を使ってMySQLと接続し、操作を行っています(画面9)。PHPでMySQLを操作する方法としては、ここで紹介したMySQL拡張API以外に、PEAR::DBPDOなどが一般に知られていますが、LeopardにデフォルトインストールされたPHPでは、PEARは無効化されています。

<?php
$mysqli = new mysqli("localhost", "php", "password", "AMP_TEST_DB");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

if ($result = $mysqli->query("SELECT * FROM TEST_TABLE")) {
while ($item = $result->fetch_array()) {
print "${item['ID']} ";
print "${item['NAME']} ";
print "${item['MEMO']} ";
print "<BR>";
}
}

$mysqli->close();
?>

画面9
画面9 PHPスクリプトの動作確認(2)

 MySQLサーバの起動・停止には、スクリプトを使用する方法以外にも、「システム環境設定」から行うことができます。そのためには、MySQLのインストールイメージの中に同梱されている「MySQL.prefPane」をダブルクリックし、MySQL設定パネルをインストールします。MySQL設定パネルでは、サーバインスタンスの起動・停止以外にも、自動起動の設定が可能です(画面10画面11)。

画面10
画面10 システム環境設定にインストールされたMySQL設定パネル

画面11
画面11 MySQL設定パネル

 Apacheのログはコンソール.appを使って見ることも、ターミナル.appで直接「/var/log/apache2/access_log」ファイルを見ることもできます(画面12)。コンソール.appは「アプリケーション」フォルダ→「ユーティリティ」から実行することができます。

画面12
画面12 コンソール.appでApacheのアクセスログを表示する

 Leopardの標準環境を生かし、MySQLだけ追加インストールする方法は以上のとおりです。Mac OS Xの標準環境を生かすことができる一方、作業難易度が高く、普段からコマンドラインの操作に慣れている必要があります。またMySQLにはアンインストールツールが用意されていないため、MySQLを削除するには、各所に保存されたファイルを手動で消す必要があります。MySQLのバージョンアップも手動で行う必要があります。

3/4

Index
Mac OS XでAMP構築
  Page1
Aquaインターフェイスの後ろにUNIX
UNIXとしての「Mac OS X」
AMP環境を整備する3つの方法
  Page2
Leopard標準環境を生かし、MySQLを追加インストール
Page3
MySQLのインストール
  Page4
XAMPPを使う方法
MAMPを使う方法

Coding Edgeフォーラム トップページ

 Mac OS X関連記事
プログラマーを引き付けるMac OS Xの魅力
続々移行するそのワケとは
 Mac一筋という熱狂的なユーザーだけでなく、「面白いことをしたい」と考えるエンジニアもMac OS Xを利用し始めている。いったいなぜだろう
Mac OS XでAMP構築
3通りの方法で整備できる開発環境
 Mac OS Xの上にWebアプリケーションの定番、AMP(Apache+MySQL+PHP)環境を3通りの方法で導入してみましょう
Mac OS Xで動かす軽量プログラミング言語
導入からPHP拡張モジュール組み込みまで
 Leopardでは、インストール直後からいくつかの軽量プログラミング言語が利用できます。早速試してみませんか?
Objective-Cは特殊な言語?
Cocoaの素、Objective-Cを知ろう(1)
 iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう
Mac内にPHP4、5、6を同居させるコツ
Mac OS X+PHPでオールインワン環境(インストール編)
 PHP4の開発は終了したが、移行の問題は残されている。異なるバージョンのPHPをスムーズに切り替えるには?
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Coding Edge 記事ランキング

本日 月間