2009-08-28 4 views
3

PHPがmysqlからデータを要求する方法を知っていますか?PHPは同じサーバ上のMySQLとどのように通信するのですか

もし私がphpと同じマシンにmysqlを持っているのであれば、ポート3306のlocalhostへのtcp接続を開くのでしょうか、それともデータを取得する他の方法がありますか?

linuxとwindowsでは同じですか?

ありがとう

+2

場合あなたは、接続文字列でlocalhostのを指定した場合でも、それが速い「Unixソケット」を使用しようとします! :) –

+3

うわー..本当に遅れたコメントありがとう! Unix上の – AntonioCS

答えて

0

PHPはポート3306への接続を開き、データ通信を許可するためのTCP経由のサーバーです。したがって、mysql(i)_connectなどでどのポートに接続するかを指定できます。なぜ、mysqlのファイアウォールルールが必要なのでしょうか。

これは、LinuxなどのWindowsで同じである

そうです、TCP :)

EDITは

:改訂、Linuxでは、PHPはtmpディレクトリのニーズ/tmp/mysql.sock経由でのmysqlに接続するように見えます正しいアクセス許可を持つこと。

+0

は、TCPを使用しません! – drAlberT

+0

それは私の上にあります...それは/tmp/mysql.sockを見つけられないということに関していつも不平を言っています。そして、私はそれについてサーバ管理をしましたが、うまくいきません。 – bear

+0

@ ct2k7:あなたのMySQLクライアントが、MySQLサーバが作成したのとは別の場所でソケットファイルを探しているようです。これは珍しい「切断」ではありません。ソケットファイルの場所とmy.cnfの設定のphp.iniの考えを確認してください。 –

3

通常、接続文字列でIPアドレスを使用しない限り、PHPは/tmp/mysql.sockにあるローカルパイプを開き、ローカルバージョンのサーバーに接続します。

+0

Windowsにはありません。 – bear

+0

はい、私はそれに関係なくIPアドレスを使用するWindowsを除いて、私は信じています。 (私はWindows上でMySQLを使用してからしばらくしていました) – razzed

8

使用可能な場合は、UNIXソケットを使用します。それ以外の場合は、localhostを使用します。

注それは自動的に起こる可能な

関連する問題