こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHP+ApacheでMySQLに接続できない。プロンプトからは可能

以下のようなコードでmysqltest.phpというファイルを作成しました。
これを
php -f mysqltest.php
とやると成功します。
しかし、ブラウザでhttp://パス/mysqltext.phpとやると失敗します。

双方がどう違うのか教えていただけないでしょうか。

以下コードです。

-----------------------
<html>
<body>
<?php
$hostname = "localhost:/var/lib/mysql/mysql.sock";
$name = "root";
$password = "pass";
printf( "hostname:%s<br>\n" , $hostname );
printf( "username:%s<br>\n" , $name );
printf( "password:%s<br>\n" , $password );


mysql_connect($hostname, $name, $password )
or die('cannot connect to database');

?>

</body>

</html>
----------------------------------
単に「ホスト:ポート」「ユーザネーム」「パスワード」を指定してconnectしているだけです。

コマンドラインから実行すると成功します
----------------------
<html>
<body>
hostname:localhost:/var/lib/mysql/mysql.sock<br>
username:root<br>
password:komaba<br>

</body>
</html>
----------------------------

ブラウザで実行すると失敗します。

-----------------------------
hostname:localhost:/var/lib/mysql/mysql.sock
username:root
password:pass
cannot connect to database
-----------------------------

投稿日時 - 2005-11-19 15:22:49

QNo.1788633

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

#先にお断りしておきますが、ホントに自身がありません。

MySQLのデフォルトのポート3306がまだ閉じているのではないですか?

UNIX domain socketsは開いているがInternet connectionsが閉じているので
コマンドラインからは成功するが、Apacheからはアクセス出来ないという経験がありました。

netstat -anで3306ポートのstateがLISTEN状態にあれば開いている状態だといえます。

#UNIXでの話しですのでOSがWindowsの場合、このアドバイスは有効ではありませんのでスルーしてください。

投稿日時 - 2005-11-20 00:03:03

あなたにオススメの質問