Mac OS X 10.4.4にアップデートしたらphpからMySQLに接続できなくなった。
MySQLはMySQL 4.0.24-standard
phpMyAdmin 2.6.2で接続すると
phpMyAdmin 2.6.2 へようこそ
#2002 - サーバーが反応しません。(または、ローカルの MySQL サーバーのソケットは正確に設定されません)
Terminalからmysql -u root -pでは
#2002 - サーバーが反応しません。(または、ローカルの MySQL サーバーのソケットは正確に設定されません)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.0.24-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
サーバーは動いている。
Your MySQL connection id is 5 to server version: 4.0.24-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
phpMyAdminのconfig.inc.phpの
$cfg['Servers'][$i]['host'] = 'localhost';を
$cfg['Servers'][$i]['host'] = '127.0.0.1';に変えてみると問題なく接続。
ネットでいろいろ調べてみると"localhost"ではソケット接続、"127.0.0.1"ではTCP接続となるらしい。
この場合はphpが"mysql.sock"を参照できていない可能性があり、ソケット接続できないということらしい。
MySQLとphpの"mysql.sock"のデフォルトパスの確認してみる.
mysql> status
の結果から
UNIX socket: /tmp/mysql.sock
<?php phpinfo() ?>と記述したinfo.phpというファイルを作成しローカルサーバーに設置し、ブラウザでアクセスするとphpinfo()というページが開く。"mysql"のセクションを確認。
MySQL Support
MYSQL_SOCKET /var/mysql/mysql.sock
Directive
mysql.default_socket no value
MySQLは"/tmp/mysql.sock"
phpは"/var/mysql/mysql.sock"
これが問題のようなので"php.ini"で設定を変えてみる。
自分のとこのは"/etc/"に"php.ini"がないので作成。
sudo cp /etc/php.ini.default /etc/php.ini
"php.ini"を編集。
sudo pico /etc/php.ini
"mysql.default_socket ="というところを探して次のように変更。
mysql.default_socket = /tmp/mysql.sock
再起動。
ブラウザで再度info.phpにアクセスし、"mysql"のセクションで"mysql.default_socket"が"/tmp/mysql.sock"になっているのを確認。
phpMyAdminも問題なし。
無事解決しました。
初めまして、thomasと申します。
返信削除DBメンテナンスのためphpMyAdminにアクセスしたら、
見慣れないエラーがでて迷っていた所、このBlogに辿り着きました。
私の問題も解決して、非常に参考になり助かりました。
ありがとうございます。
初めまして、thomasと申します。
返信削除DBメンテナンスのためphpMyAdminにアクセスしたら、
見慣れないエラーがでて迷っていた所、このBlogに辿り着きました。
私の問題も解決して、非常に参考になり助かりました。
ありがとうございます。
私も二日間ほど悩みました。
返信削除ネットで検索して、いろいろなところを参考にしてたどり着いた結果でした。
お役に立てたのなら嬉しいです。