Руководство по настройке удаленных подключений к MySQL в CentOS, hPanel и RHEL

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

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

В результате сервер и база данных, доступные удаленно, продемонстрировали превосходные результаты в улучшении производительности оборудования и решении проблем управления и безопасности.

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

Тем не менее, удаленный доступ к выбранной базе данных возможен, а именно с помощью сервера CentOS и RHEL. Продолжайте читать это руководство, чтобы узнать, как именно это сделать.

Разрешение удаленных подключений к серверу базы данных MySQL на CentOS или RHEL

Чтобы увидеть, как работает это руководство, вам необходимо иметь в своем распоряжении следующие инструменты:

  1. Удаленный сервер MySQL.
  2. Командная строка / окно терминала.
  3. Локальные и удаленные машины с правами root.

Если сервер не принадлежит вашему центру обработки данных, вам необходимо сначала установить SSH-соединение. Если вы делаете это в Windows, используйте PuTTY. При использовании Linux и MacOS лучше всего использовать встроенную терминальную оболочку.

Как пользователь VPS-сервера, вы можете найти данные для входа в систему на вкладке hPanel под названием «Серверы».

Как изменить файл конфигурации сервера MySQL

Теперь пришло время поручить удаленному серверу «перехватывать» внешние подключения. Вот как добавить новый параметр в файл конфигурации.

Войдите на сервер как пользователь root и запустите эту команду, чтобы определить местоположение файла конфигурации MySQL:

mysql --help | grep «Default options» -A 1

Результат будет выглядеть следующим образом:

 

Затем приступайте к редактированию файла конфигурации MySQL с помощью редактора nano:

nano /etc/my.cnf

Когда файл откроется, найдите строку с пометкой [mysqld] и добавьте в нее следующий фрагмент кода:

bind-address=YOUR.SERVER.IP

Замените YOUR.SERVER.IP на конкретный IP-адрес удаленной системы, на которую должен слушать сервер MySQL.

Если среди строк кода вы увидите фразу skip-networking, поместите ее в комментарий (поставив символ #) или просто удалите. В противном случае этот фрагмент не позволит серверу «улавливать» TCP/IP-соединения.

Предполагаемые изменения вступят в силу после перезапуска MySQL. Это выполняется с помощью следующей команды:

systemctl restart mysqld

Как открыть необходимый порт MySQL

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

Это сработает, если вашим брандмауэром по умолчанию является iptables. Выполните следующую команду:

iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Теперь эта команда открыла порт № 3306 для неограниченного трафика и сделала удаленный доступ доступным для всех IP-адресов.

Если вы не хотите разрешать такой доступ, просто предоставьте доступ к серверу только для одного конкретного IP-адреса с помощью этой команды:

iptables -A INPUT -i eth0 -s remote_IP_address -p tcp

--destination-port 3306 -j ACCEPT

Не забудьте также заменить remote_IP_adress на необходимый IP-адрес удаленного хоста.

Наконец, сохраните обновленную конфигурацию iptables, введя:

service iptables save

Ответ будет выглядеть следующим образом:

С этого момента сервер будет разрешать удаленные подключения к службе MySQL.

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

mysql -u username -h mysql_server_ip -p

«username» следует заменить на ваше имя пользователя MySQL, а mysql_server_IP — на фактический IP-адрес (или имя сервера). Параметр -p подскажет вам, что для входа в учетную запись пользователя MySQL необходимо ввести пароль.

Вот как будет выглядеть результат:

Connection to <em>mysql_server_ip</em> 3306 port [tcp/mysql] succeeded!

Разрешение удаленных подключений к серверу базы данных MySQL в hPanel

Инструмент может установить удаленное подключение к серверу MySQL. Для этого необходимо разрешить IP-адрес из своей учетной записи.

Сначала войдите в hPanel и перейдите непосредственно в «Базы данных» – «Удаленный MySQL».

На странице «Удаленный MySQL» вы сможете ввести IP-адрес удаленного сервера, перейдя в поле IP или в поле AnyHost. Это позволит вам подключаться буквально с любого IP-адреса.

Затем выберите целевую базу данных для удаленного доступа и нажмите «Создать».

Но это еще не все.

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

Заключительное слово

В этом кратком руководстве показано, как подключиться к серверу MySQL с помощью удаленного доступа к хосту и создать доступ с нужного IP-адреса для удаленного пользователя MySQL.

Подводя итог этапам принятия удаленного подключения от хостов на сервере CentOS или RHEL:

  1. Изменение файла конфигурации MySQL. Это делается с помощью командной строки, чтобы добавить еще один параметр и новый IP-адрес удаленного пользователя в файл конфигурации MySQL.
  2. Открытие необходимого порта MySQL. Это достигается путем добавления записи в правила брандмауэра, специально для порта 3306.

Удачи вам! Оставляйте комментарии под этим руководством, если у вас еще есть вопросы и «белые пятна» в настройке удаленных подключений к MySQL.

Blog