Дистанционное подключение к БД MYSQL через тоннель SSH

Применимость:

Слова для поиска: mysql


Задача:

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

Как удаленно использовать графический интерфейс для работы с MySQL?

Решение:

Можно использовать тоннель по протоколу ssh и таким образом подключиться к службе как-бы локально.

При этом вы сможете использовать не только консольного клиента mysql, но и любые программы установленные на вашем компьютере, например MySQL Workbench, Eclipse SQL Explorer, mysql-admin, mysql-query-browser или локально установленный PHPMyAdmin.

Решение пригодно для postgresql и прочих подобных сервисов. ,

UNIX/Linux

Для этого, если у вас UNIX/Linux, выполните команду в консоли:

ssh -L 3306:localhost:3306 user@server.net

Эта команда откроет на вашем компьютере локально порт 3306 и перенаправит все запросы к этому порту на порт 3306 вашего сервера.

Синтаксис: ssh -L <localport>hostname<remoteport> <username>@<servername>

Учтите, что если на вашем компьютере работает демон mysql, то порт 3306 уже занят и команда работать не будет.

В этом случае вам надо использовать любой свободный порт, например:

ssh -L 33060:localhost:3306 user@server.net

Вы сможете подключаться к вашему серверу указывая именно этот порт, например:

Если вы используете MySQL Workbench, то там есть встроенные средства для подключения через SSH

Windows

Если у вас на компьютере Windows, то вы сможете использовать PuTTY. Это бесплатное программное обеспечение, скачать ее можно на официальном сайте.

Запустите программу.

В настроек Session в поле Имя хоста (Host Name) укажите адрес вашего сервера.

Перейдите в категорию настроек Connection > SSH > Tunnels и в поле Source port укажите значение 3306, в поле Destination — 127.0.0.1:3306.

Нажмите кнопку Open. После ввода пароля установится соединение и можно будет работать.

Для соединения с базой данных в качестве адреса сервера указывайте 127.0.0.1 и порт 3306.

Смотрите также: