web-dev-qa-db-ja.com

リモートサーバー上のMySqlサーバーに接続できません

  • 接続先:CentOS v ?? MySql4で??ナッシュビルで(例public ip = 11.11.11.11)

    スタック:ゲートウェイとしてのケーブルモデム>転送付きルーター> CentOs Box

  • 接続元:ダラスのWindows 2003 R2(例public ip = 22.22.22.22)

パブリックIPを介してリモートサーバーからMySqlサーバーにアクセスしようとしています。接続しようとすると、数秒後に「ホストへの接続を開くことができませんでした」というエラーが表示されます。ログイン資格情報を要求する機会はありません。このサーバーをリモート接続用に開くために私が行ったことのいくつかを次に示します。

  • ルーターでポート3306を開き、MySqlボックスのローカルIPアドレスに転送します。
  • このブログエントリ の指示に従いました。
  • 目的のデータベース([email protected])にアクセスできるユーザーをMySqlに作成しました。 **もちろん、ここまでは到達していません...これを含めると思っただけです。

ダラスのボックスからポート3306のナッシュビルのボックスにtelnetで接続しようとすると、次のようになります。

C:\Documents and Settings\Administrator>telnet 11.11.11.11 3306
Connecting To 11.11.11.11...Could not open connection to the Host, on port 3306: Connect failed

ただし、22.22.22.22から11.11.11.11にpingを実行できます(フォーマットが正しくないため申し訳ありません...試しました):

C:\ Documents and Settings\Administrator> ping 11.11.11.11

32バイトのデータで11.11.11.11にpingを実行します。

11.11.11.11からの返信:bytes = 32 time = 57ms TTL = 54 11.11.11.11からの返信:bytes = 32 time = 61ms TTL = 54 11.11.11.11からの返信:bytes = 32 time = 56ms TTL = 5411.11.11.11からの返信:バイト= 32時間= 57ms TTL = 54

11.11.11.11のping統計:パケット:送信= 4、受信= 4、損失= 0(0%の損失)、ミリ秒単位の概算ラウンドトリップ時間:最小= 56ミリ秒、最大= 61ミリ秒、平均= 57ミリ秒

11.11.11.11のIPテーブルは次のとおりです。

[root @ centos〜]#/ sbin/iptables -Lチェーン入力(ポリシーACCEPT)ターゲット
prot opt source

RH-ファイアウォール-1-入力すべて-どこでもどこでも
tcp--22.22.22.22どこでもtcpdpt:mysql

チェーンフォワード(ポリシーACCEPT)ターゲット
prot opt source

RH-ファイアウォール-1-入力すべて-どこでもどこでも

チェーン出力(ポリシーACCEPT)ターゲット
prot opt source

チェーンRH-ファイアウォール-1-INPUT(2参照)target prot opt source destination ACCEPT all --where where where ACCEPT icmp--where
どこでもACCEPTを実行します
esp--どこでもどこでもACCEPTah--どこでも
どこでもACCEPTudp-どこでも224.0.0.251udp dpt:mdns ACCEPTudp-どこでもどこでも
udp dpt:ipp ACCEPTtcp-どこでもどこでも
tcp dpt:ippすべてを受け入れる-どこでもどこでも
状態RELATED、ESTABLISHED ACCEPT
tcp-どこでもどこでも状態NEWtcp dpt:mysql ACCEPT
tcp-どこでもどこでも状態NEWtcp dpt:sshすべてを拒否-どこでもどこでも拒否-icmp-Host-prohibited

@Sunny:現在、ローカルIPアドレスは/etc/my.confにリストされています。何が起こったのかを確認するために、ローカルIPアドレスを11.11.11.11に置き換えました。私がそれをしたとき、MySqlはバックアップを開始できませんでした。 bind-addressは、実際にはボックス内のIPアドレスである必要があると思います。

ローカルIPアドレスを使用して、同じネットワーク上の別のマシンからMySqlに接続できます。ただし、ローカルでも11.11.11.11で接続できません。

何か案は? Linuxの男ではないので、私は少し盲目です。

5

My.confとMySqlサーバーのバインディングを確認してください。

ローカルネットワークでのみリッスンするようになっている可能性があります。

/etc/my.confまたは/etc/mysql/my.confでbind-address設定を探しています。

この設定が有効になっている場合(通常はローカルホスト127.0.0.1のみにバインドするため)、コメントアウトすると、MySqlが使用可能なすべてのインターフェイスでリッスンできるようになります。

いずれにせよ、インターネット経由でデータベースサーバーに直接アクセスすることはまったく良い考えではありません。

インターネット経由でマシンにアクセスするには、sshトンネリングを使用することを強くお勧めします。

Windowsでは、 PuTTY を使用してMySqlマシンにssh( トンネルの作成 )を行うことができます。ローカルの3306ポートをリモートのポートに転送してから、localhost:3306を使用してMySqlサーバーにアクセスできます。

2
Sunny