鑑於: iptables 條目到位; my.cnf 正確設定; MySQL 使用者和權限設定正確 - 但仍然無法遠端存取 MySQL:建議?

鑑於: iptables 條目到位; my.cnf 正確設定; MySQL 使用者和權限設定正確 - 但仍然無法遠端存取 MySQL:建議?

我想在 Amazon EC2 CentOS 執行個體上遠端存取 MySQL(我假設它是 CentOS,因為我用來yum更新已安裝的應用程式和程式庫)。

我相信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位址24.91.66.190我正在嘗試透過簡單的 URL存取伺服器 ( ) http://whatismyip.com,該 URL 是我在 Windows 用戶端電腦上執行的 Chrome 中輸入的。

我正在嘗試使用 SQLYog 程式從 Windows 電腦存取遠端實例。

值得注意的是:當我透過 SSH 連線到此 EC2 執行個體時,我使用

ssh -i myprivatekey.pem [email protected](即,我使用公鑰/私鑰登錄,沒有密碼 - 我不確定這是否相關)。我使用名為“SecureCRT”的 Windows 程式登入我的 SSH 會話 - 我不使用 PuTTy。


24.91.66.190當我嘗試從我的 Windows 電腦上指定的 IP ( )存取 MySQL 資料庫時,使用為遠端伺服器上的 MySQL 上的該 IP 上dan的使用者設定的使用者名稱和密碼dan,連線就會逾時。

在研究了 和 的一些文檔iptablesmysql並查看了有關該主題的數十個論壇帖子後,但沒有找到任何我尚未嘗試過的可能線索,我現在將這個問題發佈在 ServerFault 上。

鑑於我已執行上述所有步驟,但仍然無法遠端存取 MySQL 實例,我可以採取哪些步驟來尋找問題?


最後一個細節:在iptables上面的列表中,我已將其從 更改為INPUT DROP [3;120]-:INPUT ACCEPT [0;0]以防產生影響(但事實並非如此)。我打算等這個問題解決後再改回來。

相關內容