• 締切済み

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 -----------------------------

みんなの回答

  • haru1234
  • ベストアンサー率47% (22/46)
回答No.1

#先にお断りしておきますが、ホントに自身がありません。 MySQLのデフォルトのポート3306がまだ閉じているのではないですか? UNIX domain socketsは開いているがInternet connectionsが閉じているので コマンドラインからは成功するが、Apacheからはアクセス出来ないという経験がありました。 netstat -anで3306ポートのstateがLISTEN状態にあれば開いている状態だといえます。 #UNIXでの話しですのでOSがWindowsの場合、このアドバイスは有効ではありませんのでスルーしてください。

関連するQ&A