Подключение к “недоступной” mysql базе

Данная проблема подключения к серверу, доступ к которому закрыт возникла, когда понадобилось отредактировать blob поле в таблице, но поскольку руками это сделать практически невозможно, а phpnuke не показывает эти поля, то нужно использовать mysqlfront или аналог.

Существует препятствие – доступ на сервер закрыт снаружи, т.е. мы можем подключиться только из скриптов на localhost (127.0.0.1) – как это делает phpmyadmin. Тут то и оказывается, что это не вся правда, поскольку существует протокол ssh, в котором есть очень полезная функция перенаправления (forwarding) портов, а это значит, что можно порт 3306 – на котором обычно висит mysql (да и любой другой, по желанию) перенаправить на свою машину. Для этого нам понадобится ssh клиент (должен заметить, что у вас должен быть shell-доступ на удаленный сервер).

Я для этого использую putty, поэтому расскажу на его примере.
Создаем/загружаем подключение к нужному хосту
Переходим на закладку SSH->Tunnels
Добавляем новый порт (Add new forwarded port) в поле Source указываем 3306, или тот порт, который больше нравится – на него будет осуществляться подключение mysqlfront, в поле destination указываем localhost:3306 – это те данные, по которым подключение осуществляется на самом сервере – например phpmyadmin’ом
Подключаемся к хосту и запускаем mysqlfront или что там есть.

Собсно все, работаем  🙂

Для юниксового клиента все проще ssh host.name -L 3306:localhost:3306