web-dev-qa-db-ja.com

MySQLリモートサーバーに接続できません。 Debian 8

iptablesに設定しても、3306ポート(mysql)に到達できないという問題があります。この問題を解決するにはどうすればよいですか?

root@vps191532:# iptables-save
# Generated by iptables-save v1.4.21 on Thu Oct 22 20:42:38 2015
*filter
:INPUT ACCEPT [695:36753]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [469:37083]
-A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Oct 22 20:42:38 2015


root@vps191532:# netstat -lnpa | grep mysql
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      8960/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     42152    8960/mysqld         /var/run/mysqld/mysqld.sock


C:\Users>telnet 149.XXX.51.XXX 3306
Connecting To 149.XXX.51.XXX...Could not open connection to the Host, on port 3306: Connect failed

root@vps191532:# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql state NEW,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:mysql state ESTABLISHED
1
WinterTime

問題は、MySQLインストールが127.0.0.1アドレス(localhostと呼ばれる非常に居心地の良い場所としても知られている)の接続のみをリッスンしていることです。基本的には、/ etc/mysql/my.cnfファイルを編集して、次の行を見つけます。

bind-address = 127.0.0.1

次のように変更するだけです。

bind-address = 0.0.0.0

そして、MySQLサービスを次のコマンドで再起動します。

service mysql restart

MySQLはすべてのアドレスでリッスンを開始することを覚えておいてください。必要に応じて調整し、ファイアウォールルールを追加して不要なリクエストをブロックしてください...

チャ!

2
Stefano Martins