Руководство по получению удаленных подключений 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-соединения. 


По окончании редактирования нажмите 'CTRL+X' или 'COMMAND+X' (для Mac), чтобы сохранить файл. Изменения, которые вы ожидаете, будут работать после перезапуска 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 Service.


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


mysql -u username -h mysql_server_ip -p


'username' должен быть перемещен с вашим MySQL username и mysql_server_IP с существующим  IP-адресом (или имя сервера). Если вы находитесь в -p параметре,  вы будете иметь возможность выполнить вход в ваш MySQL пользовательский аккаунт с помощью пароля.


Вот как он выглядит:


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

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

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


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


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

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

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

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

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


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


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

Открытие необходимого порта MySQL. Это достигается путем добавления записи в правила вашего брандмауэра, в частности для порта 3306.  

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


Blog