2012-03-05 15 views
0

私はlibmysql C APIを使用していますが、mysql_real_connect呼び出しはホストの実際のIPアドレスを使用する場合にのみ有効です - localhost以外。私はホストとしてlocalhostを使用している場合、私は 次のエラーを取得する:使用するユーザーにもローカルホストと任意のホストからのすべての権限を持っているのでlibmysql mysql_real_connectはlocalhostで失敗しますが、ローカルIPアドレスで動作します

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (0)

認証は、[OK]をする必要があります。ところで

それは

+1

あなたのmysqlサーバはおそらく、すべてのネットワークインターフェイスでリッスンしていない可能性があります。 – trojanfoe

+0

不思議なことに、localhostを127.0.0.1に変更したところ、動作し始めました。 –

答えて

1

私は同じ問題を抱えていたし、私が持っていた場合にはIPv6サポートが有効になっているので解決策は、アンインストールし、IPv6サポートを無効にすることですping localhostコマンドは、私がetc \ hostsファイルに書いたので、代わりに:: 1:127.0.0.1を返し、libmysqlを使用してCで書かれたサンプルのmysql接続プログラムは、mysql_real_connect()のホストパラメータとして "localhost"を指定したときに接続しません。現在、IPv6を無効にすると、両方のオプション( "localhost"または "127.0.0.1")が動作します。

P .:私はWindows XP SP3 Pro Czechでのみこの「解決策」を試しました。 Windows 7とLinuxではこれを試しません。

0

どちらかあなたのDNSが壊れている(ping localhost作品として期待?ん) や道「localhost」を特別扱いされているWindows 7上のXAMPPのインストールは問題がされています。あなたの/ etcに/ホストが、それはそのような何かに定義のファイルならば

The value of host may be either a host name or an IP address. If host is NULL or the string "localhost", a connection to the local host is assumed. For Windows, the client connects using a shared-memory connection, if the server has shared-memory connections enabled. Otherwise, TCP/IP is used.

http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html

0
  1. チェックを参照してください。

    :127.0.0.1 localhostの

  2. チェックをmysqlのは、そのポートを結合する方法root @ dam2k:〜#netstat -natp | grepの3306 TCP 0 0 0.0.0.0:3306 0.0.0.0:*がLISTEN 2215/mysqldを

+0

ああ、もしあなたがwindozeを使って作業しているなら、C:\ windows \ system32 \ drivers \ etc \ hostsに "127.0.0.1 localhost"が存在するかチェックし、 "netstat -na"を使ってポートをチェックすることができます – dAm2K

関連する問題