
yum
Amazon EC2 CentOS インスタンス (インストールされたアプリケーションとライブラリを更新するために使用するため、CentOS であると想定しています) 上の MySQL にリモートでアクセスしたいと思います。
iptables
それは適切に設定されており、my.cnf
適切に設定されており、MySQLユーザーが適切に設定されていると考えています。
次のセクションでは、関連するすべての設定をリストします。
の内容iptables
:
# Generated by iptables-save v1.4.18 on Tue Mar 3 18:02:27 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2620:387248]
[0:0] -A INPUT -i lo -j ACCEPT
[9189:1027277] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[216:12376] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -s 24.91.66.190/32 -p tcp -i eth0 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Tue Mar 3 18:02:27 2015
の内容my.cnf
:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
bind-address=0.0.0.0
port=3306
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
関連する MySQL セットアップ:
mysql> select user, host from mysql.user;
+-------------+--------------+
| user | host |
+-------------+--------------+
| root | 127.0.0.1 |
| dan | 24.91.66.190 |
| root | ::1 |
| dan | localhost |
| glassbiller | localhost |
| root | localhost |
+-------------+--------------+
6 rows in set (0.00 sec)
そして
mysql> select user, host, db, select_priv, insert_priv from mysql.db;
+-------------+--------------+------------------+-------------+-------------+
| user | host | db | select_priv | insert_priv |
+-------------+--------------+------------------+-------------+-------------+
| dan | 24.91.66.190 | glassbiller_test | Y | Y |
| glassbiller | localhost | glassbiller\_% | Y | Y |
| dan | localhost | glassbiller_test | Y | Y |
+-------------+--------------+------------------+-------------+-------------+
3 rows in set (0.00 sec)
サーバーおよびクライアント MySQL ツールの詳細:
wget -qO- http://instance-data/latest/meta-data/public-ipv4
(参照)https://stackoverflow.com/a/7536318/368896) リモートマシンからアクセスする必要がある IP アドレスを確認し、これを使用しています。
iptables
( sudo service iptables restart
) とmysql
( )の両方を再起動しましたsudo service mysqld restart
。実際、ある時点でサーバーを再起動しました。
MySQL でユーザーに設定されたパスワードは、dan
「localhost」と「24.91.66.190」の両方のエントリで同じです。
IPアドレスを取得しましたからクライアントWindowsマシンで実行されているChromeに入力した24.91.66.190
単純なURLを介してサーバー()にアクセスしようとしています。http://whatismyip.com
SQLYog プログラムを使用して、Windows マシンからリモート インスタンスにアクセスしようとしています。
注記: このEC2インスタンスにSSH接続する際は、
ssh -i myprivatekey.pem [email protected]
(つまり、パスワードなしの公開/秘密キー ログインを使用します。これが関連しているかどうかはわかりません)。SSH セッションにログオンするには、「SecureCRT」という Windows プログラムを使用します。PuTTy は使用しません。
リモート サーバー上の MySQL でその IPのユーザーに設定されているユーザー名とパスワードを24.91.66.190
使用して、指定された IP ( )の Windows マシンから MySQL データベースにアクセスしようとすると、接続がタイムアウトしてしまいます。dan
dan
iptables
との両方に関するドキュメントを調査しmysql
、このトピックに関するフォーラム投稿を数十件確認しましたが、まだ試していない可能性のある手がかりは見つからなかったため、この質問を ServerFault に投稿します。
上記の手順をすべて実行しても、MySQL インスタンスにリモートでアクセスできない場合、問題を追跡するために実行できる次の手順についてどのような提案がありますか?
最後にもう 1 つ: 上記のリストでは、違いが出るかもしれないので、をiptables
に変更しました(違いはありませんでした)。この問題が解決したら、すぐに元に戻す予定です。INPUT DROP [3;120]
:INPUT ACCEPT [0;0]