Конечно можно настроить 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
Первые две из них просто для безопасности и при желании их можно пропустить, но на всякий случай скажу что они значат:
- Первая строка опредеяет сколько есть времени у пользователя на то, чтобы залогинится по SSH
- Вторая строка определяет максимальное количество попыток
А вот третья делает как раз-таки то, что нам нужно: перенаправляет соединение с внешнего порта 3307 на внутренний 3306.
Добавляем все (или только последнюю) строчки в файл и сохраняем его. Далее вызовом команды
service sshd restart
перезапускаем сервис SSH и можем переходить к следующему пункту.Если это нужно однократно, то можно воспользоваться консольнгой командой
ssh -L локальный_порт:localhost:удаленный_порт логин@сервер
или в нашем случае ssh -L 3307:127.0.0.1:3306
Настройка HeidiSQL
На представленных ниже скриншотах всё ясно и наглядно видно куда и чего вписывать