2

Mac 10.6 コンピューターで PHP フレームワークをセットアップしようとしていますが、データベース接続の問題により、セットアップ中にエラーが発生し続けます。そこで、自分でサーバーに接続できるかどうかを確認するために小さな php スクリプトを作成しましたが、接続もできませんでした。操作がタイムアウトしました。

ただし、コマンドラインから mysql に完全にログインできます。これらの接続の問題が発生しているのは PHP だけです。誰にもアイデアはありますか?

これがスクリプトです。

<?php
  $connection = mysql_connect("http://localhost", "root", "");
if( $connection ) {
  mysql_close( $connection );
  die('TRUE');
}else {
  die('Could not connect: ' . mysql_error());
}

?>

編集: http:// を削除しようとしましたが、「そのようなファイルはありません」というエラーが表示されます。

PHP Warning:  mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/newuser/Downloads/t.php on line 2
PHP Warning:  mysql_connect(): No such file or directory in /Users/newuser/Downloads/t.php on line 2
Could not connect: No such file or directory
4

4 に答える 4

3

あなたはこれを使用しています:

mysql_connect("http://localhost", "root", "");

しかし、あなたの MySQL ホストはそうではありませhttp://localhostlocalhost


これを使用して、それを削除してみてくださいhttp://

mysql_connect("localhost", "root", "");


補足として: root アカウントで作業することは、開発プラットフォームであっても良い方法ではありません。


コメントの後に編集:その場合は、 (のIPアドレスで試してください127.0.0.1 localhost


また、本当に Unix ソケットを使用したい場合は、MySQL サーバーで使用されているソケットを見つける必要があります(構成で指定する必要があります)。たとえば、私の には、次の/etc/mysql/my.cnfものがあります。

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock

次に、PHP で同じものを使用する必要があります。

  • mysql.default_socketそれについては、ディレクティブを参照してください。
  • mysql_connect()または、次のような文字列として渡します':/path/to/socket'
于 2011-03-04T17:46:16.457 に答える
1

http://ホスト名localhostのみを削除して使用します。

于 2011-03-04T17:52:22.910 に答える
1

「127.0.0.1」を使用すると、ソケットの代わりに TCP4 が強制的に使用されます。

ソケットを使用する場合、このドキュメントによると、Mac OS X のデフォルトのソケットは次のとおりです。

/tmp/mysql.sock

これをデフォルトにするには、php 構成を編集するか、.htaccessファイルに次の内容を含める必要があります。

php_value mysql.default_socket "/tmp/mysql.sock"
于 2011-03-04T17:52:27.610 に答える
1

mysql_connect パラメータから「http://」を削除します。HTTP URL ではなく、ホストが必要です。

于 2011-03-04T17:46:34.013 に答える