2

Windows 7 コンピューターで Windows サービスとして MySQL サーバーを実行しています。 コマンド プロンプトで、external.ip = http://www.whatismyip.com/からの IP アドレスを使用して接続しようとすると、次のようになります。

mysql -h external.ip -u root -p

それは返します:

ERROR 2003 (HY000): Can't connect to MySQL server on external.ip (10060)

ただし、 external.ipをipconfigコマンドでリストされた IP アドレスに変更すると、接続できます。

mysql -h ipconfig.ip -u root -p

root の権限を変更して、任意のホストを受け入れるようにしました ( Accessing a mysql database from external host/ip? (ie: mysql workbench) のようなコマンドを使用)。データベース内:

SELECT host, user FROM user;

戻り値 (要約):

| host   | user |
-----------------
| %      | root |

また、私の my.ini ファイルには、skip-networking という行がありません。

先日、 external.ipがipconfig.ipと同じである別のネットワークでこれを試したところ、うまくいきました。これが問題の原因である可能性がありますか、それとも他に何かありますか?

4

1 に答える 1

6

http://www.whatismyip.com/と ipconfig から取得したアドレスが異なる場合は、ローカル ルーター (おそらくインターネットへの接続に使用するもの) をネットワーク アドレス変換に使用していることを意味します。つまり、192.168.0.1 や 10.0.0.1 などのプライベート ネットワーク アドレスを持つローカル ネットワーク (自宅またはお気に入りのインターネット カフェ) があります。

MySQL は通常、インバウンド接続要求に対してポート 3306 で listen を使用します。ただし、パブリック IP アドレス (What's My IP アドレス) 経由で接続しようとすると、ネットワーク プロバイダーが要求をルーターに送信します。ルーターはポート 3306 を認識しますが、おそらくそれをどう処理すればよいかわかりません。そのため、リクエストは黙って無視されます。接続に使用しているソフトウェアがタイムアウトします。これはいい。クラッカーは、そのようなポートに接続して、マシンに侵入できるかどうかを確認しようとします。

そのため、これを機能させるには、着信 TCP リクエストをポート 3306 経由で MySQL サーバーを実行するマシンに渡すようにルーターを構成する必要があります。おそらく、これを行うための構成画面があります。所有しているルーターで動作します。コーヒー ショップのルーターでは機能しません。

「ポート」が何を意味するのか、または ipconfig とhttp://www.whatismyip.com/から異なる IP アドレスを取得する理由がわからない場合は、その前にインターネット技術についてもう少し学ぶ必要があるでしょう。このようなことを試みるべきです。

于 2013-06-17T21:53:14.030 に答える