
Ich möchte remote auf MySQL auf einer Amazon EC2 CentOS-Instanz zugreifen (ich gehe davon aus, dass es CentOS ist, da ich es yum
zum Aktualisieren installierter Anwendungen und Bibliotheken verwende).
Ich glaube, dass es iptables
richtig eingestellt ist, dass my.cnf
es richtig eingestellt ist und dass der MySQL-Benutzer richtig eingestellt ist.
Alle relevanten Einstellungen liste ich in den folgenden Abschnitten auf.
Inhalt von 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
Inhalt von 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
Relevantes MySQL-Setup:
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)
Und
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)
Details zum Server- und Client-MySQL-Tool:
Von wget -qO- http://instance-data/latest/meta-data/public-ipv4
(siehehttps://stackoverflow.com/a/7536318/368896) Ich habe die IP-Adresse bestätigt, auf die ich von meinem Remote-Computer aus zugreifen muss, und verwende diese.
Ich habe sowohl iptables
( sudo service iptables restart
) als auch mysql
( sudo service mysqld restart
) neu gestartet. Tatsächlich habe ich irgendwann den Server neu gestartet.
Das für den Benutzer in MySQL festgelegte Kennwort dan
ist für die Einträge „localhost“ und „24.91.66.190“ identisch.
Ich habe die IP-Adresse erhaltenausvon dem ich versuche, auf den Server ( 24.91.66.190
) über die einfache URL zuzugreifen http://whatismyip.com
, die ich in Chrome auf meinem Windows-Clientcomputer eingegeben habe.
Ich versuche, von einem Windows-Computer aus mit dem Programm SQLYog auf die Remote-Instanz zuzugreifen.
Hinweis: Wenn ich per SSH auf diese EC2-Instanz zugreife, verwende ich
ssh -i myprivatekey.pem [email protected]
(d. h. ich verwende eine Anmeldung mit öffentlichem/privatem Schlüssel ohne Kennwort – ich bin nicht sicher, ob das relevant ist). Ich verwende ein Windows-Programm namens „SecureCRT“, um mich bei meiner SSH-Sitzung anzumelden – ich verwende nicht PuTTy.
Wenn ich versuche, von meinem Windows-Rechner unter der angegebenen IP-Adresse () auf die MySQL-Datenbank zuzugreifen und 24.91.66.190
dabei den Benutzernamen dan
und das Kennwort für den Benutzer unter dieser IP-Adresse auf MySQL auf dem Remote-Server eingerichtet habe dan
, tritt bei der Verbindung einfach eine Zeitüberschreitung auf.
iptables
Nachdem ich sowohl die Dokumentation für als auch untersucht mysql
und Dutzende von Forenbeiträgen zu diesem Thema überprüft habe, jedoch keine möglichen Hinweise gefunden habe, die ich nicht bereits ausprobiert habe, stelle ich diese Frage jetzt auf ServerFault.
Ich habe alle oben genannten Schritte ausgeführt, kann aber noch immer nicht remote auf die MySQL-Instanz zugreifen. Welche Vorschläge gibt es für die nächsten Schritte, die ich unternehmen könnte, um das Problem zu ermitteln?
Ein letztes Detail: In der iptables
obigen Auflistung hatte ich von INPUT DROP [3;120]
in geändert :INPUT ACCEPT [0;0]
– falls das einen Unterschied machte (tat es nicht). Ich habe vor, es wieder zu ändern, sobald dieses Problem behoben ist.