Как подключиться к базе данных mysql через SSH-туннель

Очень неудобно работать с БД через стандартный mysql-клиент, который доступен на удаленном сервере. Часто требуется делать сложные запросы, сравнивать результаты, быстро просматривать список таблиц – намного удобнее делать это через клиент с графическим интерфейсом.

Однако, обычно рабочее окружение настолько защищено, что просто так, с локального компьютера, к БД не подключишься. PhpMyAdmin на сервере тоже установлен далеко не всегда. Десктоп и графические приложения на удаленном сервере обычно не настроены.

Хороший вариант в таком случае – использовать SSH-туннель. SSH-доступ обычно есть у каждого разработчика бекенда. Как и при любом SSH-соединении, весь трафик между вами и БД будет шифроваться.

Ниже, в примерах, я буду использовать для подключения привычный мне mysql-клиент HeidiSQL. Однако, вы можете использовать тот клиент, который нравится вам лично.

SSH-туннель с помощью Putty

1. Скачиваем HeidiSQL и Putty. HeidiSQL устанавливаем как обычно. Putty не требует установки, просто поместите его в ту директорию, где вам будет удобнее.

2. Запустите Putty.

3. Необходимо создать новую сессию для подключения. Для этого в поле “Host Name” укажите имя сервера, к которому вы будете подключаться. В поле “Saved Sessions” введите произвольное имя сессии (я обычно называют сессию по имени сервера) и нажмите кнопку “Save”.

putty_ssh_tunnel1

4. В списке “Category” слева выберите пункт “Connection” -> “Data”. В поле “Auto-login username” укажите логин, который вы обычно используете для ssh-коннекта к данному серверу.

putty_ssh_tunnel2

5. Перейдите в раздел “Connection” -> “SSH” -> “Tunnels”. В поле “Source Port” введите “3306”, в поле “Destination” — “127.0.0.1:3306” и нажмите кнопку “Add”.

putty_ssh_tunnel3

6. Вернитесь в раздел “Sessions” и еще раз нажмите кнопку “Save”.

7. Устанавливаем соединение с сервером. Нажмите кнопку “Open”. Сервер попросит ввести пароль — введите тот, который вы обычно используете для SSH. Если все сделано правильно, вы увидите приглашение сервера.

8. Запускаем HeidiSQL. Создаем новую сессию с помощью кнопки “New”. В качестве имени сервера БД используем “127.0.0.1”, логины и пароли те, какие вы обычно используете для подключения к указанной БД.

putty_ssh_tunnel4

9. Сохраняем сессию, нажимаем кнопку “Open”. Если подключение было выполнено успешно – вы увидите список баз данных.

SSH-туннель с помощью HeidiSQL и Putty

Данный вариант отличается от первого тем, что настройки SSH-доступа задаются непосредственно в mysql-клиенте. Кроме того, в первом случае, можно использовать любой графический mysql-клиент, не обязательно HeidiSQL.

1. Скачиваем и устанавливаем HeidiSQL, Putty.

2. Запускаем HeidySQL. Нажимаем кнопку “New” и создаем новую сессию, имя можно выбрать произвольное.

3. Во вкладке “Settings” выполняем настройки. В поле “Network type” в выпадающем списке выбираем “MySQL (SSH tunnel)”. В поле “Hostname / IP” указываем “localhost”. Указываем логин и пароль, которые обычно используются для подключения к БД mysql. Номер порта по умолчанию “3306” – оставляем без изменений.

heidisql_ssh_tunnel1

4. Переходим во вкладку “SSH tunnel”. В поле “plink.exe location” указываем путь к Putty. Можно, если есть желание, скачать plink.exe, но Putty будет вполне достаточно. Далее указываем стандартные настройки SSH-доступа: адрес хоста, логин, пароль. Номер порта по умолчанию “3307” оставляем без изменений.

heidisql_ssh_tunnel2

5. Нажимаем кнопку “Save”.

6. Затем нажимаем “Open”. Если все было сделано правильно, HeidiSQL выведет список баз данных на сервере.

One thought on “Как подключиться к базе данных mysql через SSH-туннель

  1. Алексей

    Спасибо за материал. Пожалуйста не удаляйте, ибо в закладках :)

Comments are closed.