Table of Contents

MySQL — посібник для початку роботи

MySQL — найпопулярніша у світі реляційна база даних з відкритим кодом, яку використовують мільйони застосунків — від невеликих сайтів до великих корпоративних систем. Сервер постачається з повністю налаштованим MySQL 8.4 LTS і паролем root, вказаним під час замовлення. Для керування базами через браузер встановлено phpMyAdmin.


Крок 1 — перевірте, що MySQL працює

IP-адресу сервера й пароль root показано на сторінці Server Details у клієнтській панелі. phpMyAdmin доступний одразу після створення сервера. Відкрийте http://your.server.ip/phpmyadmin у браузері, щоб переконатися, що все працює.

Вхід у phpMyAdmin:

  • Імʼя користувача: root
  • Пароль: пароль MySQL Root Password, вказаний під час замовлення

У phpMyAdmin можна створювати бази даних, виконувати SQL-запити, імпортувати й експортувати дані та керувати користувачами без командного рядка.

Серверам баз даних не потрібен публічний доступ з інтернету. Для безпечного доступу розмістіть сервер у приватній мережі за маршрутизатором VyOS і підключайтеся через VPN до MySQL і phpMyAdmin за приватною IP сервера.


Крок 2 — віддалене підключення до MySQL

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

mysql -h your.server.ip -u root -p

Параметри підключення для графічних інструментів (MySQL Workbench, DBeaver, HeidiSQL тощо):

Параметр Значення
Хостyour.server.ip
Порт3306
Імʼя користувачаroot
ПарольMySQL Root Password із замовлення

Примітка: Порт 3306 — це протокол MySQL, а не HTTP, тож відкрити його в браузері неможливо. Використовуйте клієнт баз даних або команду вище.


Крок 3 — увімкніть SSL для phpMyAdmin (необовʼязково)

Якщо на сервер спрямовано домен, можна увімкнути HTTPS для phpMyAdmin із безкоштовним сертифікатом Let’s Encrypt. Підключіться через SSH і виконайте:

ssh root@your.server.ip
/opt/setup/get-ssl.sh db.yourdomain.com

Скрипт перевірить DNS, отримає сертифікат і автоматично налаштує Apache для HTTPS. Після завершення phpMyAdmin буде доступний за адресою https://db.yourdomain.com/phpmyadmin.

Примітка: Перед запуском скрипта переконайтеся, що A-запис домену вказує на IP сервера. SSL необовʼязковий — phpMyAdmin нормально працює через HTTP за IP-адресою.


Керування базами даних

Створення додаткових баз даних

Додаткові бази даних можна створити через phpMyAdmin або SSH:

mysql -u root -p

CREATE DATABASE newdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'newuser'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'%';
FLUSH PRIVILEGES;

Імпорт і експорт

Через phpMyAdmin: Використовуйте вкладки Import/Export — підтримуються SQL, CSV та інші формати. Максимальний розмір завантаження — 64 МБ.

Через командний рядок:

# Export
mysqldump -u root -p your_database > backup.sql

# Import
mysql -u root -p your_database < backup.sql

Для великих баз (понад 64 МБ) використовуйте командний рядок замість phpMyAdmin.


Після встановлення

Fail2Ban — захист від підбору паролів

Сервер постачається з Fail2Ban , попередньо налаштованим для захисту SSH і phpMyAdmin від підбору паролів.

Правило Макс. спроб Тривалість блокування
SSH5 невдалих входів10 хвилин
phpMyAdmin5 невдалих входів1 година

Корисні команди:

# Check banned IPs
fail2ban-client status phpmyadmin
fail2ban-client status sshd

# Unban an IP
fail2ban-client set phpmyadmin unbanip 1.2.3.4

Якщо ви випадково заблокували себе, підключіться через VNC-консоль у клієнтській панелі й розблокуйте свою IP.

Керування сервісами

MySQL і вебстек працюють через systemd. Типові команди:

# Check service status
systemctl status mysql
systemctl status apache2

# Restart MySQL
systemctl restart mysql

# View MySQL logs
journalctl -u mysql -n 100

Налаштування продуктивності MySQL

Під час першого завантаження буферний пул InnoDB автоматично встановлюється на 50% RAM. Щоб перевірити поточне значення:

mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"

Щоб змінити вручну, відредагуйте /etc/mysql/mysql.conf.d/99-tuning.cnf і перезапустіть MySQL:

systemctl restart mysql

Облікові дані сервера

Пароль root MySQL зберігається у /root/.mysql_credentials.

Що вже налаштовано

  • Віддалений доступ: MySQL приймає підключення з будь-якої IP на порту 3306
  • Буферний пул InnoDB: Автоматично налаштовується на 50% доступної RAM під час першого завантаження
  • Performance schema: Вимкнено на серверах із менш ніж 2 ГБ RAM для економії ресурсів
  • Завантаження PHP: Макс. розмір файлу 64 МБ (для імпорту в phpMyAdmin)

Встановлене ПЗ

Компонент Версія
Ubuntu24.04 LTS
MySQL8.4 LTS (Oracle APT)
Apache2.4
PHP8.3
phpMyAdmin5.2
CertbotОстання
Fail2Ban1.0

Усунення проблем

Проблема Рішення
Не вдається віддалено підключитися до MySQL Перевірте, що порт 3306 не блокує файрвол. Переконайтеся, що користувач має хост '%' (а не 'localhost')
phpMyAdmin показує помилку входу Перевірте пароль MySQL. Облікові дані root — у /root/.mysql_credentials
Імпорт у phpMyAdmin не вдається (файл завеликий) Максимальний розмір завантаження — 64 МБ. Для більших файлів використовуйте mysql -u root -p dbname < file.sql через SSH
MySQL не запускається Перевірте логи: journalctl -u mysql -n 50. Поширена причина — заповнений диск (df -h /)
Забули пароль root MySQL Підключіться через SSH і перевірте /root/.mysql_credentials
Заблоковано Fail2Ban Розблокуйте свою IP через VNC-консоль у клієнтській панелі
Забули пароль root Скиньте його через VNC-консоль у клієнтській панелі