Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение к MySQL удаленно. Проблема с удаленным подключением MySQL 
V
    Опции темы
Zerstroer
Дата 13.11.2013, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Доброго времени суток!
Не могу подключиться к MySQL удаленно. 
Получаю ошибку:
Код

evgen@evgen-dell:~$ mysql -u root -p -h 192.168.1.20
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.20' (113)

Проблема кажется простой, но решения до сих пор нет. Изгуглился. Мануалов много, во всех в основном написано одно и то же. Все делал в соответствии с мануалами, подключиться не могу. Надеюсь на помощь и совместное решение. Возможно пишу не в ту ветку, может быть все дело в настройке ОС. В общем, прошу помощи.
Детали:
Создал виртуальную машину, смоделировал ситуацию, аналогичную рабочей, а именно: 
На виртуальную машину установлен CentOS 6.4, установлены системы, которые крутятся у нас на рабочей машине (Zabbix, OTRS, etc.). SELinux включен и настроен на корректную работу этих систем (в частности, там много танцев было, для настройки OTRS). SELinux выключать - не желательно. 
Виртуальная машина заведена в сеть с моим компьютером, пингуется.
Согласно куче найденных мануалов сделал следующие вещи:
1. Проверил /etc/my.cnf
Код

[evgen@virtualbox ~]$ cat /etc/my.cnf
[mysqld]
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
port=3306

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

2. Задал GRANT для пользователя root@% (не забыл про FLUSH PRIVILEGES)
Код

mysql> select User, Host, Password from mysql.user where User = 'root';
+------+-------------------+-------------------------------------------+
| User | Host              | Password                                  |
+------+-------------------+-------------------------------------------+
| root | localhost         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | virtualbox.centos | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| root | %                 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+------+-------------------+-------------------------------------------+
3 rows in set (0.00 sec)

3. Выполнил:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

Код

[evgen@virtualbox ~]$ sudo service iptables status
Таблица: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW 
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      


4. Вот эту штуку проверил:
Код

[evgen@virtualbox ~]$ sudo netstat -lnp | grep mysql
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1183/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     10867  1183/mysqld         /var/lib/mysql/mysql.sock


В итоге при попытке подключиться со своего компьютера получаю:
Код

evgen@evgen-dell:~$ mysql -u root -p -h 192.168.1.20
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.20' (113)


Мне многое не по глазам, я мог упустить деталь. Надеюсь на коллективное решение.
p.s. Пишите, что еще нужно проверить. 
Не делал проверку с помощью nc и telnet.
Извините, что такой многословный пост.




--------------------
In silico
PM MAIL ICQ   Вверх
_zorn_
Дата 13.11.2013, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



В фаерволе пакеты отбрасываются до проверки на порт. Удали 6 правило и добавь его в конец цепочки.
А вообще мог бы для проверки отключить фаервол и тогда бы понял где проблема.
PM MAIL   Вверх
Zerstroer
Дата 13.11.2013, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



_zorn_, дайте, пожалуйста, подробную инструкцию как сделать то, что вы сказали.
Я с фаерволлом совсем на Вы, отключать его не умею.
Под правилами, которые нужно изменить имеете ввиду вот это:
Код

5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 


Это сообщение отредактировал(а) Zerstroer - 13.11.2013, 09:06


--------------------
In silico
PM MAIL ICQ   Вверх
Zerstroer
Дата 13.11.2013, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Все решилось!
Почитал вот этот мануал:
Мануал
Добавил правило перед правилом 6 командой:
Код

iptables -I INPUT 6 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

В базу на виртуальной машине залез! Проверяю на живом сервере.



--------------------
In silico
PM MAIL ICQ   Вверх
_zorn_
Дата 13.11.2013, 09:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



Отключить iptables
Код
sudo service iptables stop


Изменить правила
Код
sudo iptables -D INPUT 6 //удалить 6 правило в цепочке INPUT
sudo iptables -A INPUT -j REJECT --reject-with icmp-port-unreachable //добавить такое же в конец цепочки

PM MAIL   Вверх
Zerstroer
Дата 13.11.2013, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



На рабочем сервере проблема осталась.
Когда отключаю фаерволл  - подключение удается.
При включенном - проблема сохраняется.
Вот вывод service iptables status

Код

[root@localhost ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination        



--------------------
In silico
PM MAIL ICQ   Вверх
_zorn_
Дата 13.11.2013, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



По идее должно работать. Может в каких других таблицах правила еще есть.
Сделай service iptables save и глянь файлик /etc/sysconfig/iptables
PM MAIL   Вверх
Zerstroer
Дата 13.11.2013, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Сделал. Вот вывод:
Код

[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Nov 13 13:46:14 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [383:56054]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT
# Completed on Wed Nov 13 13:46:14 2013
[root@localhost ~]# 




--------------------
In silico
PM MAIL ICQ   Вверх
_zorn_
Дата 14.11.2013, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



Не заметил одну деталь. Возможно на серваке не одна сетевая и подключение к мускулю идет не через eth0.
Вобщем попробуй убрать в правиле "-i eth0"

Это сообщение отредактировал(а) _zorn_ - 14.11.2013, 04:24
PM MAIL   Вверх
Zerstroer
Дата 14.11.2013, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



_zorn_, вы опять попали в точку! Сетевой интерфейс на серваке вообще не eth0, а какой-то em1!


--------------------
In silico
PM MAIL ICQ   Вверх
_zorn_
Дата 14.11.2013, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



Это фряха  smile 
Хотя не, по путям на редхатовское что то похоже... Кто то видимо под фряху закосить хотел smile

Это сообщение отредактировал(а) _zorn_ - 14.11.2013, 04:33
PM MAIL   Вверх
Zerstroer
Дата 14.11.2013, 04:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Проблема решена! 
_zorn_, спасибо вам огромное!


--------------------
In silico
PM MAIL ICQ   Вверх
Zerstroer
Дата 14.11.2013, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Цитата(_zorn_ @  14.11.2013,  02:29 Найти цитируемый пост)
Хотя не, по путям на редхатовское что то похоже... Кто то видимо под фряху закосить хотел 
 - это админы Казактелекома так развлекаются...



--------------------
In silico
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0835 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.