web-dev-qa-db-ja.com

リモートサーバーでmysqlに接続できません

Mysqlを使用してUbuntuサーバーからRHEL6サーバーに接続しようとしています。サーバーにtelnetingを試し、mysqlに接続しようとしました。 bind-addressをコメントアウトしようとしましたが、それでも成功しませんでした。 telnetでエラーコードなどが表示されません。 1分ほどで失敗します。 mysqlを使用すると、このエラーコードERROR 2003 (HY000): Can't connect to MySQL server on 'SERVER_IP' (111)が発生します。 「SERVER_IP」はもちろん、実際のエラーがその実際のIPを与えるプレースホルダーです。

My.cnfと、宛先サーバーからのiptablesを含めました。

宛先サーバー上...

my.cnf:

[mysqld]
bind-address=0.0.0.0
tmp_table_size=512M
max_heap_table_size=512M
sort_buffer_size=32M
read_buffer_size=128K
read_rnd_buffer_size=256K
table_cache=2048
key_buffer_size=512M
thread_cache_size=50
query_cache_type=1
query_cache_size=256M
query_cache_limit=24M
#query_alloc_block_size=128
#query_cache_min_res_unit=128
innodb_log_buffer_size=16M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table
innodb_log_files_in_group=2
innodb_buffer_pool_size=32G
innodb_log_file_size=512M
innodb_additional_mem_pool_size=20M
join_buffer_size=128K

max_allowed_packet=100M
max_connections=256
wait_timeout=28800
interactive_timeout=3600

# modify isolation method for faster inserting.
# Do not uncomment the line below unless you understand what this does.
# transaction-isolation = READ-COMMITTED
# do not reverse lookup clients
skip-name-resolve

#long_query_time=6
#log_slow_queries=/var/log/mysqld-slow.log
#log_queries_not_using_indexes=On
#log_slow_admin_statements=On

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#Added by Magento ECG
long_query_time=1
slow_query_log

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

iptables:

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 225 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -i eth1 --dport 11211 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
COMMIT

Sudo netstat -ntpl

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:11211               0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:2123                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:1581                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -
tcp        0      0 :::11211                    :::*                        LISTEN      -
tcp        0      0 :::22                       :::*                        LISTEN      -
tcp        0      0 :::225                      :::*                        LISTEN      -

sshd_config:

Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server
3
eisaacson

まず、自分のiptablesが問題の原因ではないことを確認する必要があります。 iptablesスクリプトにログを追加してみてください。

-A INPUT -m state --state NEW -m tcp -p tcp -i eth1 --dport 11211 -j ACCEPT
-A INPUT -j LOG --log-prefix "DROPPED BY MY IPTABLES"
-A INPUT -j REJECT --reject-with icmp-Host-prohibited

このようにして、どのパケットがドロップされ、どのパケットが受け入れられたかに関するログを取得し、ファイアウォールのせいであるかどうかを知ることができます。

編集:エラーを回避するために二重引用符に変更

1
philippe

正常に動作するはずです。最初に確認するのは、ローカルマシン(MySQLボックスに接続しようとしているマシン)がそのポートで任意のマシンにアウトバウンド接続できることを確認することです。

これらはローカルですか?それとも別々のネットワーク上にありますか?それらの間にファイアウォールはありますか?

より多くの情報を必要とする種類の問題のようです。

1
Michael Pobega