MYSQL(3.23)にアクセスするPHP(4.3.10)プログラムがWeb経由(Apache2.0.52)で見れません。

PHP Warning: mysql_connect(): Can’t connect to local MySQL server through socket ’/tmp/mysql.sock’ (13)
というエラーが発生してしまいます。
Linux(Fedora Core3)上で直接実行した場合はちゃんと実行できます。他に何か設定が必要なのでしょうか?
php.iniのmysql.default_socketや
my.cnfの[mysqld]socket=などを
変更してMYSQL・Apacheの再起動をかけたりしているのですがどうもうまくいきません。
何か心当たりのある方はよろしくお願いします。

プログラムは下の通りです。
<html>
<?php
$db = mysql_connect(”localhost”, ”user”,”pass”);
mysql_select_db(”mysql”,$db);
$result = mysql_query(”SELECT Host FROM user”,$db);
printf(”First Name: %s
¥n”, mysql_result($result,0,”Host”));
?>
</html>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/10 00:49:18
  • 終了:--

回答(6件)

id:tonolove No.1

tonolove回答回数158ベストアンサー獲得回数02005/07/10 02:27:43

ポイント15pt

http://www.hi-ho.ne.jp/tsumiki/book_sup2.html


mysql_connect(”localhost:/var/lib/mysql/mysql.sock”,”mysql”,”passwd”)){


としてみてはどうでしょうか。

id:stray_sheep

ありがとうございます。

これも試してみましたが、だめでした。

現在、mysql.sockは/tmp/下に配置しております。

2005/07/10 02:57:37
id:tonolove No.2

tonolove回答回数158ベストアンサー獲得回数02005/07/10 02:32:02

先ほどのものです。localhostだけではなく、ソケットファイルの場所を明示する方法ですね。パスは環境にあわせてみてください。

id:stray_sheep

ソケットファイルの場所を明示することでコマンド上での実行は正常に行えたのですが、Webでアクセス使用とするとエラーが表示されてしまいます・・・。

2005/07/10 02:59:59
id:obache No.3

obache回答回数31ベストアンサー獲得回数02005/07/10 20:50:58

ポイント15pt

http://www.hostgeekz.com/docs/mysql/japanese/manual.ja_Problems....

MySQL バージョン 5.0.3-alpha リファレンスマニュアル - A 問題と一般的なエラー

/tmp/mysql.sock ファイルに、web server のユーザの権限でアクセスできないのが原因です。

(13は Permission denied)

id:stray_sheep

ありがとうございます。

私も何となく権限が問題のような気はするのですが、mysql.sockのパーミッションは現在777です。

Linuxに関してなにか基本的な知識が欠けているようでしたらご指摘ください。

2005/07/11 00:46:58
id:japin_kei No.4

japin_kei回答回数4ベストアンサー獲得回数02005/07/11 02:01:59

ポイント100pt

$db = mysql_connect(”localhost”, ”user”,”pass”);

phpを実行するのはlocalhostなのでしょうか?もし違うのであれば、ホストにサーバー名を入れてみてもだめでしょうか?

違ってたらすいません。

id:stray_sheep

ありがとうございます。

できましたー。localhostのかわりにipアドレスを入力したところ、user@www.my.adminみたいなエラーが表示されたので、さてはと思いhostsを修正してみました。

するとWebでも無事表示されました。

悩み抜いた甲斐がありました。みなさん、ほんとにありがとうございます。

2005/07/12 01:19:50
id:kgs_kazuhiro No.5

かずひろ@KGS回答回数12ベストアンサー獲得回数02005/07/11 14:12:34

ポイント15pt

SELinuxのポリシー管理は有効になっているでしょうか?


URLはRHEL4についての情報ですが、

「Apacheからmysqlへのアクセス可能性に関するバグが修正されました。」

との記述があります。


FC3の該当ページは探せなかったのですが、selinux-policy-targetedパッケージは最新になってるでしょうか?


selinuxを止めてみるのが手っ取り早い原因の切り分けになるかもしれません。

id:stray_sheep

ありがとうございます。

なるほどー。そんな障害が報告されているのですね。

私の方は初歩的なミスでしたが、今後注意してみます。

2005/07/12 01:22:24
id:kel No.6

kel回答回数2ベストアンサー獲得回数02005/07/11 19:44:16

ポイント15pt

localhost では接続出来ませんでしたが、127.0.0.1 に変更する事で接続が出来た事例があります(cygwin/C言語)。host の欄を 127.0.0.1 に書き換えて試してみてはいかがでしょうか。

id:stray_sheep

ありがとうございます。

今回もその例で解決しました。

お返事が遅くなってしまい、申し訳ありません。

2005/07/12 01:23:10

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • mysql4.0.27でのエラー Warning: mysql_pconnect(): Can’t connect to local MySQL server through socket ’/var/lib/mysql/mysql.sock’ (13) in /usr/home/hoge/admin/inc/connectdb.php on line 6 Can’t connect to local MySQL server through socket ’/v
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません