4

PHP を使用して Web ホスト上の MySQL データベースに接続する場合、サーバーを参照する最良の方法は何ですか?

私の Web ホストの MySQL 管理ページには、サーバーの IP アドレスが示されていますが、IP 番号以外のものを使用できますか?

例えば。

$con = mysql_connect("l00.50.10.10","user","password");
if (!$con) { die('Could not connect: ' . mysql_error()); }

使用するlocalhostと、次の出力が得られます。

接続できませんでした: ソケット '/var/lib/mysql/mysql.sock' を介してローカル MySQL サーバーに接続できません (2)

4

6 に答える 6

2

ホストとして「localhost」を使用して、スクリプトのシステムを参照できます。

$con = mysql_connect("localhost", "user", "password");

ただし、1桁の小文字のLがあるため、IPへの接続はおそらく失敗します(ただし、質問のIPが単なる例であることを願っています)。

また、廃止予定の mysql の代わりに mysqli または PDO を使用してください。

于 2012-10-23T04:39:31.003 に答える
0

この質問に対する答えは、ホスト (またはそのコントロール パネル) が MySQL 権限をどのように構成しているかによって異なります。権限は IP またはホスト名に固有であるため、IP またはホスト名で接続すると、同じ接続結果が得られないことがよくあります。疑わしい場合は、彼らが提供する設定に正確に固執します.

詳細: http://dev.mysql.com/doc/refman/5.0/en/account-names.html

于 2012-10-23T04:45:08.597 に答える
0

このようなものをグーグルで入力しようとしましたか?

php 接続できませんでした: ソケット '/var/lib/mysql/mysql.sock' を介してローカル MySQL サーバーに接続できません (2)

于 2012-10-23T05:33:42.757 に答える
0

データベース ホストが同じコンピューターの場合 - を使用しますlocalhostlocalhostポート番号を使用するかどうかに関係なく、MySQL は tcpip (ネットワーク) ではなく、ローカル ソケットで接続します。

サーバーがソケット接続をサポートしていない場合があり、次のようなエラーが発生します。

接続できませんでした: ソケット経由でローカルの MySQL サーバーに接続できません ...

編集/訂正: ソケットで接続できない場合 - を使用して127.0.0.1ください。tcpip による接続を強制します。

データベース サーバーが他のマシンにインストールされている場合は、IP addressまたはを使用できますdomain

DNS(ドメイン名サーバー)が正常に動作していない場合やドメインの有効期限が切れている場合でも接続を確立できるため、ほとんどの場合、IP アドレスの方が適しています。


そして 1 つのアドバイス -新しいアプリケーションでは mysql_ 関数の代わりに mysqli_ を使用してください。新しい機能は使い方が非常に似ていますが、より安全です。

古いmysql_ 関数は廃止されており、新しいアプリケーションにはお勧めできません。古い古いソフトウェア (CMS システム、電子商取引システムなど) との互換性があるため、PHP で引き続き使用できます。

PHP ヘルプには次のように書かれています (mysql_connect について):

この拡張機能の使用はお勧めできません。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。


localhost との接続の詳細 - MySQL リファレンスからの情報

Unix では、MySQL プログラムはホスト名 localhost を特別に扱います。その方法は、他のネットワーク ベースのプログラムと比べて予想とは異なる可能性があります。localhost への接続の場合、MySQL プログラムは Unix ソケット ファイルを使用してローカル サーバーへの接続を試みます。これは、ポート番号を指定するために --port または -P オプションが指定されている場合でも発生します。クライアントがローカル サーバーへの TCP/IP 接続を確実に確立するには、 --host または -h を使用してホスト名の値 127.0.0.1 を指定します。

「--port」および「-P」オプションは PHP 以外のコンテキストで記述されていますが、接続メカニズムは同様に機能し、localhost「特別な」名前であり、この PHP、コンソール、またはその他のソフトウェアは関係ありません。

于 2012-10-23T04:59:52.803 に答える
0

データベース サーバーのホスト名を指定できますmydbbox.example.com。DNS ルックアップが不要なため、IP アドレスを使用する方が高速な場合があります。

このSOの質問も参照してください。

于 2012-10-23T04:39:09.220 に答える
-1

これは主に、ホストがどのように構成されているかに依存します。私の経験から、「localhost」、サーバーの IP アドレス、またはホストによって設定された何らかのサブドメインを使用します。

これはほとんどの共有ホスティング環境のデフォルトであるため、「localhost」をテストすることから始めます。

$con = mysql_connect("localhost", "username", "password");
于 2012-10-23T04:40:44.250 に答える