Дано: запись iptables имеется; my.cnf правильно настроен; пользователь MySQL и разрешения установлены правильно, но удаленный доступ к MySQL по-прежнему невозможен: Какие есть предложения?

Дано: запись iptables имеется; my.cnf правильно настроен; пользователь MySQL и разрешения установлены правильно, но удаленный доступ к MySQL по-прежнему невозможен: Какие есть предложения?

Я хотел бы получить удаленный доступ к MySQL на экземпляре Amazon EC2 CentOS (я предполагаю, что это 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). На самом деле, в какой-то момент я перезапустил сервер.

Пароль, установленный для пользователя danв MySQL, одинаков для записей «localhost» и «24.91.66.190».

Я получил IP-адресоткоторый я пытаюсь открыть на сервере ( 24.91.66.190) через простой URL-адрес http://whatismyip.com, который я ввел в Chrome, запущенном на моем клиентском компьютере Windows.

Я пытаюсь получить доступ к удаленному экземпляру с машины Windows с помощью программы SQLYog.

Примечание: когда я подключаюсь по SSH к этому экземпляру EC2, я использую

ssh -i myprivatekey.pem [email protected](т. е. я использую вход с открытым/закрытым ключом, без пароля — не уверен, что это имеет значение). Я использую программу Windows под названием «SecureCRT» для входа в мою сессию SSH — я не использую PuTTy.


Когда я пытаюсь получить доступ к базе данных MySQL с моего компьютера Windows по указанному IP-адресу ( 24.91.66.190), используя имя пользователя danи пароль, настроенные для пользователя danс этим IP-адресом на MySQL на удаленном сервере, соединение просто истекает по времени ожидания.

Изучив некоторую документацию по обоим фреймворкам iptablesи mysql, а также просмотрев десятки сообщений на форумах по этой теме, но не найдя никаких возможных подсказок, которые я еще не опробовал, я теперь размещаю этот вопрос на ServerFault.

Учитывая, что я выполнил все вышеперечисленные шаги, но по-прежнему не могу получить удаленный доступ к экземпляру MySQL, какие шаги вы могли бы мне предложить для отслеживания проблемы?


Последняя деталь: в iptablesлистинге выше я изменил с INPUT DROP [3;120]на :INPUT ACCEPT [0;0]- на случай, если это что-то изменит (это не так). Я планирую вернуть все обратно, как только эта проблема будет решена.

Связанный контент