Посібник з отримання віддалених підключень 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