SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.11.2009 11:29:46

krlexa
Участник
Зарегистрирован: 05.11.2009
Сообщений: 3

Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

Добрый день. 
Я должен организовать соединение моей локальной программы с MySQL у хостера. Прямого соединения на порт 3306 нет. Я попробовал сделать через SSH-тоннель (через Putty). Но когда я его установил и попробовал подключиться к базе, я получил от сервера ответ, что "Host is not allowed to connect to this MySQL server". После этого я позвонил хостеру и спросил, что за хрень, и в ответ мне сообщили, что у нас разрешен доступ к MySQL только с localhost и сделать это у меня не получится ни как, потому что SSH-тоннель не скрывает ip и подключение к СУБД идет из сети, они это палят и рубят. 
Я бы может им и поверил, что это невозможно, но мой MySQLFront умеет работать через http-тоннель, я попробовал закинуть туда его серверную часть и MySQLFront благополучно подключился. Тогда я решил сделать HTTP-тоннель, скачал GNU HTTPTunnel, что понял - настроил и при попытке подключиться получил тот же ответ "Host is not allowed to connect to this MySQL server".
Извините за столь долгое вступление? вот мы и добрались до вопроса. Я так подозреваю, что http-тоннель устанавливает соединение все равно от имени удаленной машины. Можно ли как-нибудь заставить его делать это от имени localhost? Если кто-то знает как это сделать из GNU HTTPTunnel, подскажите пожалуйста, если это можно сделать из другой программки, скажите какой, и вообще, как можно решить эту проблему.
Если это важно, хостинг Агава.

Неактивен

 

#2 05.11.2009 13:54:13

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

SSH-тоннель — на то и тоннель, чтобы соединение шло с localhost. Единственное,
чем может отличаться такое соединение — так это тем, что оно происходит по
TCP/IP, а не по unix socket. Можете провести простой опыт: зайти на машинку по
ssh и подключиться консольным клиентом mysql, но обязательно по tcp/ip. Если
удастся — значит, через ssh-тоннель тоже можно:
mysql --protocol=tcp localhost

Неактивен

 

#3 05.11.2009 15:02:45

krlexa
Участник
Зарегистрирован: 05.11.2009
Сообщений: 3

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

Вы оказались правы. Попробовал выполнить $ mysql --protocol=tcp localhost
и получил ту же ошибку. ERROR 1130 (00000): Host 'cp2.agava.net' is not allowed to connect to this MySQL server
А вы не знаете, можно ли putty или другую программу для SSH-туннелирования заставить создавать unix socket?

Неактивен

 

#4 05.11.2009 15:10:15

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

Нет, нельзя sad

Можете написать свою программу, которая подключается по socket, а слушает
по tcp/ip smile

Неактивен

 

#5 05.11.2009 15:37:24

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

А можно повесить какой-то скриптик на сервер и передавать ему запросы на выполнение и парсить его результаты... вариант проще, но есессно кривее, т.к. при каждом запросе нуна будет коннектиться к серверу БД.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#6 05.11.2009 16:00:01

krlexa
Участник
Зарегистрирован: 05.11.2009
Сообщений: 3

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

А нет какой-нибудь программы где можно указать напрямую что конеектиться будем к tmp/mysql.sock
Я вот сейчас пытаюсь понять что происходит в серверной части GNU HTTP Tunnel. Там что-то есть про unix socket
if ($useunix) { // this is for the unix socket type
    $sockopen="unix://".preg_replace('/\\\\/','/',$IPC_TMPDIR."tun$ident.sock");
Но как его заставить зайти в это условие и что это за tun$ident.sock непонятно...
Кто в силах помочь, посмотрите пожалуйста. http://http-tunnel.sourceforge.net/

Отредактированно krlexa (05.11.2009 16:05:46)

Неактивен

 

#7 05.11.2009 16:13:41

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Не могу подключиться к базе у хостера через http-туннель, разрешен только localhost

Возможно, mysqlproxy умеет соединяться по сокету. У нее, правда, есть проблемы
с кодировками, но в первом приближении можно попробовать.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson