
По умолчанию сервер 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, выполните следующие действия:
-
Запустите Putty и введите IP-адрес сервера в поле
Host name (or IP address):
-
В меню
ConnectionразвернитеSSHи выберитеTunnels. Введите3306в полеSource Portи127.0.0.1:3306в полеDestination.
Нажмите кнопку
Add, чтобы добавить туннель. -
Вернитесь на страницу
Session, чтобы сохранить настройки и не вводить их снова.Введите имя сеанса в поле
Saved Sessionи нажмите кнопкуSave.
-
Выберите сохраненный сеанс и войдите на удаленный сервер, нажав кнопку
Open.
Появится новое окно с запросом имени пользователя и пароля. После ввода имени пользователя и пароля вы войдете на сервер, и будет создан SSH-туннель.
Настройка аутентификации по открытому ключу позволит вам подключаться к серверу без ввода пароля.
Теперь вы можете подключиться к удаленной базе данных, используя локальный клиент MySQL.
Например, если вы используете HeidiSQL, введите 127.0.0.1 в поле Hostname / IP , а также имя пользователя и пароль MySQL в поля User и Password :

Заключение
MySQL, самый популярный сервер баз данных с открытым исходным кодом, прослушивает входящие соединения только на локальном хосте. Создание SSH-туннеля позволяет безопасно подключаться к удалённому серверу MySQL с локального клиента.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Связанные руководства
- Как установить MariaDB на CentOS 8
- Вывести список (показать) таблиц в базе данных MySQL
- Как настроить репликацию Master-Slave MySQL (MariaDB) в Debian 10
- Как разрешить удаленные подключения к серверу базы данных MySQL
- Как удалить учетные записи пользователей MySQL
- Как установить MariaDB на Debian 10
- Как показать список всех баз данных в MySQL