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 від підбору паролів.
| Правило | Макс. спроб | Тривалість блокування |
|---|---|---|
| SSH | 5 невдалих входів | 10 хвилин |
| phpMyAdmin | 5 невдалих входів | 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)
Встановлене ПЗ
| Компонент | Версія |
|---|---|
| Ubuntu | 24.04 LTS |
| MySQL | 8.4 LTS (Oracle APT) |
| Apache | 2.4 |
| PHP | 8.3 |
| phpMyAdmin | 5.2 |
| Certbot | Остання |
| Fail2Ban | 1.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-консоль у клієнтській панелі |