Настройка внешнего доступ вызывает ошибку mysql

Обсуждение проблем в работе программного комплекса
sway
Сообщения: 12
Зарегистрирован:
18 июл 2013, 12:19

sway » 04 мар 2015, 11:40

bind-address = %ip% - это IP адрес на котором висит (работает) сам сервер. Эта настройка не имеет никакого отношения к IP адресам с которых пользователям разрешено подключаться к БД.
Я ж написал, что ошибся с формулировкой. Да, именно так он и работает и именно из-за этой настройки соединение с tcp://localhost:3306 фейлит.
Только что провел эксперимент выставив
bind-address = 0.0.0.0
и убрал из hosts
192.168.0.17       localhost

Пока open server пытался проверить состояние серверов, я открыл проект и не обнаружил там никаких ошибок соединения с БД. Т.е. проблема с localhost именно из-за этой настройки. Проблема теперь лишь в том, что open server не может проверить состояние =(
Аватара пользователя
Максим
Сообщения: 5384
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 04 мар 2015, 11:45

sway, если вы вручную меняете IP в конфиге mysql то конечно, как я уже ответил выше - все модули должны работать на одном IP или все на (* который 0.0.0.0). Используйте фаервол, если внешний доступ к базе не требуется.
sway
Сообщения: 12
Зарегистрирован:
18 июл 2013, 12:19

sway » 04 мар 2015, 11:58

Да не об этом же говорю...
Есть проблема: нет сединения с mysql через tcp://localhost:3306
Известна причина: bind-address = %ip%
Получаем mysql, висящий на %ip%, который по факту нафиг там не нужен, неработающий tcp://localhost:3306 и отсутствие какой-либо некостыльной возможности вернуть mysql на ip 127.0.0.1 оставив веб сервера на %ip%
Аватара пользователя
Максим
Сообщения: 5384
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 04 мар 2015, 12:09

sway, я вам уже по этому поводу отвечал. Не используйте localhost в качестве адреса mysql сервера в скриптах, если используете сервер на внешних IP адресах.

Добавление такой записи в HOSTS файл (я про 192.168.0.17 localhost) может создать вам очень большие проблемы с другим софтом и сетью вообще. Поскольку localhost обязан жить на 127.0.0.1 :-) Именно по этому в Open Server вешать этот домен на другой IP запрещено и будет ошибка при запуске, которую вы уже видели.
sway
Сообщения: 12
Зарегистрирован:
18 июл 2013, 12:19

sway » 04 мар 2015, 12:24

Не используйте localhost в качестве адреса mysql сервера в скриптах
Не вариант. Я часто использую одинаковые настройки для local и для production версий чтобы не заморачиваться с последствиями заливания локального конфига на production сервер. И как ни странно - большинство хостингов вешают mysql на localhost.

Мне по факту и внешний доступ на сервер нужен бывает только чтобы оттестировать какой-то специфичный баг через vmware

Про 192.168.0.17 localhost знаю, потому и обозвал решение костыльным.

Пришла еще в голову идея перенаправить запросы с localhost:3306 на %ip%:3306 или наоборот (это вроде бы называется port forwarding). Если получится - сообщу.
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Asmodey » 04 мар 2015, 12:31

Ещё раз (с)

В ОС скажите - работать на всех адресах. Мускул будет на всех адресах. Не нужные - прикройте файерволом.
Зачем проксировать запросы к мускулу :) Уж логичней тогда к вэбу
sway
Сообщения: 12
Зарегистрирован:
18 июл 2013, 12:19

sway » 04 мар 2015, 12:36

Хм.. заработало. Прошлый раз когда пробовал что-то не завелось. Видимо пробовал до изменения настроек пользователя в mysql с localhost на %.
Хотя с роутингом было бы забавнее побаловаться =)
Аватара пользователя
Asmodey
Сообщения: 339
Зарегистрирован:
18 апр 2012, 10:33
Контактная информация:

Asmodey » 04 мар 2015, 12:46

Ну совсем уж оффтоп. :)
ИМХО. Если хочется поиграться с проксированием, ставьте ноду. Там довольно легко всякое такое делать :) Для сетевых трюков зависимостей нет. Идеальный инструмент для таких экспериментов.
furomi
Сообщения: 8
Зарегистрирован:
21 сен 2014, 16:06

furomi » 28 апр 2015, 13:41

А у меня проблемка с внешним коннектом. Открыл 3306 порт, указываю внешний ип, коннект не идёт, при этом локалхост отлично работает.
фаерволы отключил, порт действительно открыть, вот только почему коннекта нет, непонятно :(

[upd=1430219443][/upd]
даже на локалке, пробую с другого компа подключиться, нефига
Error establishing a database connection (на вп)

[upd=1430220026][/upd]
оказывается для каждого пользователя можно выставлять ограничения и по умолчанию стоит доступ только от локалхоста
правится мускулзапросом GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
или через пхпмайадмин ;)
Ответить