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

Удаленные подключения MySQL

По умолчанию сервер MySQL прослушивает только локальный хост, что означает, что к нему могут получить доступ только приложения, работающие на том же хосте.

Однако в некоторых ситуациях может потребоваться подключение к серверу из удалённых мест. Один из вариантов — настроить сервер MySQL на удалённые подключения , но это требует прав администратора и может создать риски безопасности.

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

В этом руководстве мы объясним, как создать SSH-туннель и подключиться к серверу MySQL с удалённых клиентов. Те же инструкции применимы и к MariaDB.

Предпосылки

  • SSH-клиент.
  • SSH-доступ к системе, на которой работает сервер MySQL.

Создание SSH-туннеля в Linux и macOS

Клиент ssh предустановлен в большинстве систем на базе Linux и Unix.

Если вы используете Linux или macOS в качестве операционной системы, вы можете создать SSH-туннель с помощью следующей команды:

 ssh -N -L 3336:127.0.0.1:3306 [USER]@[SERVER_IP]

Используются следующие варианты:

  • -N — указывает SSH не выполнять удаленную команду.
  • -L 3336:127.0.0.1:3306 — создаёт переадресацию локального порта. Локальный порт ( 3306 ), IP-адрес назначения ( 127.0.0.1 ) и удалённый порт ( 3306 ) разделяются двоеточием ( : .
  • [USER]@[SERVER_IP] — IP-адрес удаленного пользователя SSH и сервера.
  • Чтобы запустить команду в фоновом режиме, используйте опцию -f .
  • Если сервер SSH прослушивает порт, отличный от 22 (по умолчанию), укажите порт с помощью параметра -p [PORT_NUMBER] .

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

Теперь вы можете указать клиенту MySQL на локальном компьютере адрес 127.0.0.1:3336 ввести учетные данные для входа в удаленную базу данных и получить доступ к серверу MySQL.

Например, чтобы подключиться к серверу MySQL с помощью клиента командной строки mysql , необходимо выполнить:

 mysql -u MYSQL_USER -p -h 127.0.0.1

Где MYSQL_USER — удаленный пользователь MySQL, имеющий права доступа к базе данных.

При появлении запроса введите пароль пользователя MySQL.

Чтобы завершить работу SSH-туннеля, нажмите CTRL+C в консоли, где запущен SSH-клиент.

Создание SSH-туннеля в Windows

Пользователям Windows сначала необходимо скачать и установить SSH-клиент. Самый популярный SSH-клиент для Windows — PuTTY. Скачать PuTTY можно здесь .

Чтобы создать SSH-туннель к серверу MySQL с помощью PuTTY, выполните следующие действия:

  1. Запустите Putty и введите IP-адрес сервера в поле Host name (or IP address) :

    Запустить Putty
  2. В меню Connection разверните SSH и выберите Tunnels . Введите 3306 в поле Source Port и 127.0.0.1:3306 в поле Destination .

    Настроить Tunnel Putty

    Нажмите кнопку Add , чтобы добавить туннель.

  3. Вернитесь на страницу Session , чтобы сохранить настройки и не вводить их снова.

    Введите имя сеанса в поле Saved Session и нажмите кнопку Save .

    Сохранить сеанс Putty
  4. Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку Open .

    Открытый сеанс Putty

    Появится новое окно с запросом имени пользователя и пароля. После ввода имени пользователя и пароля вы войдете на сервер, и будет создан SSH-туннель.

Настройка аутентификации по открытому ключу позволит вам подключаться к серверу без ввода пароля.

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

Например, если вы используете HeidiSQL, введите 127.0.0.1 в поле Hostname / IP , а также имя пользователя и пароль MySQL в поля User и Password :

HeidiSQL

Заключение

MySQL, самый популярный сервер баз данных с открытым исходным кодом, прослушивает входящие соединения только на локальном хосте. Создание SSH-туннеля позволяет безопасно подключаться к удалённому серверу MySQL с локального клиента.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

mysql mariadb ssh

Связанные руководства

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *