- ベストアンサー
MySQLとの間でのソケットエラー
あまりプログラミングを知らないので言葉がおかしいところあったらすみません。 とあるレンタルサーバーを借りてphpのプログラム(WordPress)を動かしています。 WordPressはME 2.2.3、phpは4.4.2、別のサーバーで動いているMySQLは4.0.26です(WWWサーバー、MySQLサーバーは専用ではなく共有)。 ここ数日なのですが、ブログの更新時やコメント投稿時に以下のエラーが出るようになりました(但し記事やコメント自体は投稿できています)。 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) on line: 294 ネットで検索したところ、phpとMySQLをつなぐソケットというものの位置がおかしくなっていることが一因のようです。 phpinfo()で返ってくる値は"MYSQL_SOCKET /tmp/mysql.sock"となっており、 一方phpMyAdminでログインしてMySQLを確認したところ"socket /home/mysql/mysql.sock /home/mysql/mysql.sock"となっています。 このズレがエラーを引き起こしているのではないかと思うのですが、あいにくユーザーにはこれらを変える権限はないようです(php.iniを設定することは不可能)。 私がWordPressをインストールしなおして設定をいじれば対応できるようですが、その前にこうしたズレはよくあることなのか、それともレンタルサーバー側に問い合わせるべきなのか疑問に思ったので質問しました。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プログラムの修正などなく、急に起こり始めたのならサーバ会社に 問い合わせればいいかと思います。対応してもらえればそれで解決です。 対応してもらえないとなればご自分でソースを修正するしかないですが。
その他の回答 (1)
- seta_takahiro
- ベストアンサー率60% (23/38)
mysql.default_socket という値が PHP_INI_ALL らしいので、 ini_set('mysql.default_socket', '/home/mysql/mysql.sock '); みたいなことをしてみたらどうでしょうか? http://php.net/manual/ja/ref.mysql.php http://jp2.php.net/manual/ja/function.ini-set.php
お礼
回答ありがとうございます。 まずここまでの経過報告です。 レンタルサーバー側にほぼ質問と同じ内容で「食い違っているのではないでしょうか」と聞きましたところ、 「当方はWEBサーバーとMySQLサーバーは別になっています。phpinfo()のMYSQL_SOCKETはWebサーバーのローカルで用いられる際に使われ、デフォルトでは無効となっているので、データベースのご利用には問題ありません」という旨のメールが返ってきました。 私は納得しましたが、エラーが出ることには変わりありません(WordPressではMySQLサーバーの名前は間違いなく設定していますし、データベースを覗いてみても記事自体のレコードは確かに存在します)。 ------ さてこの回答をいただき、さしあたり以下のことを試しました。 1) WordPressがおいてあるディレクトリの.htaccessに以下の記述を追加してました。 php_value mysql.default_socket /home/mysql/mysql.sock 2) phpinfo()を試したところ、mysql.default_socketのlocalの値が入力した通りのものになっていました。 3) テストで更新しましたところ、やはりエラーが出ました。内容は以下のとおりです。 Can't connect to local MySQL server through socket '/home/mysql/mysql.sock' (2) on line: 294 ……とりあえず、これからプラグインを全部止めて更新テストしてみます。回答ありがとうございました。
補足
結果報告です。 プラグインを全部止めて更新テストしたところうまくいきましたので、あれこれ試したところ、どうもバージョンアップしたプラグインが他のプラグインと衝突するらしいことがわかりました。 結局衝突するものを他の代替プラグインで交換しました。 お騒がせしてすみませんでした。お二方の回答ありがとうございました。
お礼
回答ありがとうございます。 WordPressはプラグインの入れ替え、バージョンアップなどをしたのですが、コアの部分には手をつけてないはずです。なにかの拍子にずれてしまったのでしょうか……。 こうしたズレは起きたままでも問題なく動作するものなのでしょうか。