Соединение с MySQL через SSH 20.06.2010

Если перед вами встала задача соединиться с удаленной базой данной, которая, по очевидным причинам, не доступна извне, то я могу предложить вам по крайней мере 3 варианта решения этой проблемы. 

  1. Открыть к ней доступ извне, тем самым снизив уровень безопасности.
  2. Соединиться через ssh и выполнять команды вида:
    1.  
    2. echo "SELECT * FROM `table`"mysql
    3.  
  3. Сделать проброс соединения через SSH

Так как первых два варианта глупые чуть более, чем полностью, остановимся на третьем. Для этого нам понадобится выполнить всего одну команду в консоле:

  1.  
  2. ssh -L 3307:localhost:3306 user@remote-host.com
  3.  

Где 3307 — локальный порт, к которому нужно присоединяться из PHP, localhost — локальный хост, 3306 — удаленный порт, user@remote-host.com — пользователь@удаленный хост

Подводные камни

      1. Команду нужно выполнять после каждого перезапуска сервера и контролировать работоспособность
      2. Время отклика возрастет, так как добавятся накладные расходы на шифрование/расшифровывание
      3. На локальном компьютере появится уязвимость удаленного сервера, так как есть прямой проброс соединения. Так что следует для порта 3307 заблокировать доступ извне через iptable или брандмауэр

,


Похожие статьи


Добавить комментарий