web-dev-qa-db-ja.com

リモートMySQLホストに接続しようとしています(エラー2003)

Debianサーバーで実行されているMySQLインスタンスがあり、問題なくローカルに接続できます。ただし、リモートで接続することはできません。コマンドラインからこれを試行すると、次のエラーが表示されます。

ERROR 2003 (HY000): Can't connect to MySQL server on '<server-ip>' (110)

ユーザーをmysqlに 'user' @ '*'および 'user' @ 'localhost'として追加しました。このサーバーのskip-networkingはfalseに設定され、バインドアドレスはmy.cnfでコメント化されています。また、次のコマンドを使用して、iptablesでポート3306を開こうとしました。

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

以下は、iptables -Lを使用して取得したすべてのiptableファイアウォールルールのリストです。

Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
REJECT     tcp  --  anywhere             anywhere            tcp dpt:auth reject-with icmp-port-unreachable 
ACCEPT     icmp --  anywhere             anywhere            icmp type 8 code 0 state NEW,RELATED,ESTABLISHED,UNTRACKED 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ftp state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:ssh state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp spts:1024:65535 dpt:www state NEW 
ACCEPT     tcp  --  <my-server>          anywhere            tcp spts:1024:65535 dpt:mysql state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:49152:65534 state NEW 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
LOG        tcp  --  anywhere             anywhere            tcp dpt:mysql LOG level debug 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

誰も私がここからどこに行くべきか考えていますか?

26
hellsgate

応答に基づいて、接続をブロックするデバイスがあなたとサーバーの間にあるかどうかを見つける必要があります。また、サーバーにログインしたときにそのサーバーのイーサネットアドレスで3306にtelnetできることを確認する必要があります...そうでない場合、おそらくイーサネットにバインドされたサービスを取得していないmy.cnf... bind-addressパラメーターを参照してください。

12
Mike Pennington

MySQLサーバーの構成をチェックして、127.0.0.1にバインドされているかどうかを確認する必要があります。アプリが同じサーバー上にある場合にのみmysqlに接続できます。 webaminをインストールする簡単な方法があり、Webインターフェイスを介して制御できます。

1
anony

これは3306ポートが閉じられているためである可能性があります。サーバーポートのステータスを確認してください

http://www.yougetsignal.com/tools/open-ports/

閉じていると表示されている場合、ポートを開くためにマシンの外側からアクセスできないことを意味します

ufw-複雑でないファイアウォール

Ubuntuのデフォルトのファイアウォール設定ツールはufwです。 ufwの使用方法の例を以下に示します。

まず、ufwを有効にする必要があります。ターミナルプロンプトから次を入力します。

Sudo ufw enable

ポートを開くには(mysql):

Sudo ufw allow 3306

ファイアウォールのステータスを表示するには、次を入力します。

Sudo ufw status
1
Basil Jose

私にとっては、これは/etc/default/iptablesファイルのポート3306を有効にして、以下の特定の行のコメントを外すことにより、任意のホストからの着信トラフィックを許可することでした。

#-A INPUT -p tcp --dport 3306 -j ACCEPT
0
Nasir Mahmood

VPN接続を使用してリモートデータベースサーバーに接続し、この種のエラーが発生した場合は、2つの簡単な手順を確認してください...

1)Windowsマシンで、「コントロールパネル\ネットワークとインターネット\ネットワーク接続」のパスに移動し、ローカルエリアネットワークを右クリックして、プロパティに移動します。 [TCP/IPv4]をクリックして、プロパティに移動します。 IPとDNSサーバーを確認します(DHCPを使用するかどうか)。

2)この後、マシンを再起動してもう一度チェックアウトしてください。

これがうまくいくことを願っています。私の場合はうまくいきます。

注:すべての設定が正しいことを確認してください。この答えは面白いですが、私の場合はうまくいきます:)

ありがとう!

0
Amit Contractor