Mac OS X Lion にしたらなぜか php.ini が消滅して MySQL が使えなくなった

Mac OS X Lion にしたら PHP から MySQL が使えなくなりました。

困ったので設定することにしました。設定するにあたって以下のページが大変参考になりました。

MySQL のソケットファイルの場所を調べる

ターミナルを起動して以下のコマンドを実行。

1
mysql -u root -p

パスワードを入力すると以下の情報が出てきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.54, for apple-darwin10.6.0 (i386) using readline 6.2
 
Connection id:		4
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.1.54 Source distribution
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	latin1
Db     characterset:	latin1
Client characterset:	latin1
Conn.  characterset:	latin1
UNIX socket:		/opt/local/var/run/mysql5/mysqld.sock
Uptime:			18 hours 53 min 13 sec
 
Threads: 1  Questions: 4  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.0
--------------
mysql> quit

UNIX socket のところにパスがあります。

php.ini にソケットファイルを記入する

php.ini に設定します。

1
sudo vi /etc/php.ini

と思ったらファイルがありません。どこに設定したかなーと思って phpinfo() で調べると php.ini ファイルがありません。Mac OS X Lion にしたのが原因なのかは分かりませんが、昨日まで使えていたので、アップデートを機にこうなってしまったのかもしれません。

というわけで php.ini を新規作成します。

1
2
3
cd /etc
sudo cp php.ini.default php.ini
sudo vi php.ini

以下のように先ほどのソケットを設定します。

1219
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

PHP 5.3 ならタイムゾーンを設定します。

998
date.timezone = Asia/Tokyo

コメント

  1. nanasessさんのコメント

    MacPorts の PHP だったら, Lion にアップグレードしても大丈夫でした. /opt/local/etc/php5/php.ini です.

    • webleさんのコメント

      私の環境では /etc/php.ini で読み込んでますのでそれが消滅した感じですね。