Рано или поздно настаёт момент, когда PhpMyAdmin не смотря на всю его замечательность перестаёт удовлетворять потребностям или просто становится неудобным и мы ищем иные способы управлять нашими базами данных и желательно делать это удобно и легко. Когда передо мной встал такой вопрос я выбрал для себя HeidiSQL — отличный windows клиент для MySQL, PostgreSQL и MSSQL.

Конечно можно настроить MySQL так, чтобы он слушал открытый на сервере порт 3306, но это небезопасно. Я думаю, если вы читаете этот пост, то вы понимаете это.

Далее я покажу как настроить подключение HeidiSQL к удалённому серверу с MySQL через SSH. В моём случае сервер работал под управлением Ubuntu Server 12.10, но для других систем настройка мало чем отличается.

Итак, шаг первый:

Настройка Mysql


Этот пункт я оставляю на усмотрение читателя. Можно создать отдельного пользователя для внешних соединений, можно воспользоваться уже имеющимся учётными записями. Как вам удобнее. Информации о создании пользователей в интернете полно, поэтому я не буду забивать этим эту статью.
Стоит лишь обратить внимание на то, что возможно у вас возможно будут ограничения на хост на который пользователь может залогиниться, т.е. например user@db_server или root@127.0.0.1. На всякий случай стоит его запомнить и использовать везде, где он необходим. Я далее будут использовать адрес 127.0.0.1

Настройка SSH


Командой
sudo nano /etc/ssh/ssh_config открываем конфигурационный файл SSH на редактирование. и добавляем туда три строки:
LoginGraceTime 60
MaxAuthTries 3
LocalForward 3307 127.0.0.1:3306

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

А вот третья делает как раз-таки то, что нам нужно: перенаправляет соединение с внешнего порта 3307 на внутренний 3306.
Добавляем все (или только последнюю) строчки в файл и сохраняем его. Далее вызовом команды service sshd restartперезапускаем сервис SSH и можем переходить к следующему пункту.
Если это нужно однократно, то можно воспользоваться консольнгой командой ssh -L локальный_порт:localhost:удаленный_порт логин@сервер или в нашем случае ssh -L 3307:127.0.0.1:3306

Настройка HeidiSQL


На представленных ниже скриншотах всё ясно и наглядно видно куда и чего вписывать

UPD

Спасибо Дмитрию Варочкину за найденную опечатку!