MySQL - одна из самых популярных реляционных баз данных. Её ставят на сайты, корпоративные сервисы, CRM, интернет-магазины, API и всё, что работает с данными.
На VDS MySQL нужен, чтобы быть независимым от shared-хостинга и контролировать свой сервер полностью: от настроек до производительности
Если вы только купили сервер:
Подключитесь к серверу
Выполните подготовку сервера к работе
Перед установкой полезно обновлять репозитории:
Если вы работаете от пользователя root, то в командах не нужно использовать sudo
sudo apt update && sudo apt upgrade -y
Так вы исключаете конфликты версий и ставите MySQL на стабильную основу
На Ubuntu:
sudo apt install mysql-server -y
Подробнее про apt: Как установить и удалить программу в Linux через терминал
После установки служба стартует автоматически. Проверить это можно так:
sudo systemctl status mysql
Если вы увидели зелёный статус - всё работает. Если нет, то ниже будет порядок действий, если MySQL не запустился
Подробнее о systemctl можно узнать из статьи: Как перезапустить сервис в Linux
MySQL имеет встроенный скрипт hardening-настроек:
sudo mysql_secure_installation
Что он делает:
Если не уверены, что ответить в процессе, выбирайте дефолтные безопасные параметры.
Подключение выполняется так:
sudo mysql
Вы попадёте в консоль MySQL без ввода пароля, так как вход идёт через root системы. Это нормально и удобно, особенно на этапе настройки.
Чтобы выйти:
exit;
Не рекомендуется работать через root в продакшене. Создайте пользователя:
В команде замените
appuser - имя вашего пользователя
StrongPassword12341234!!! - ваш пароль
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPassword12341234!!!'; GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
Так вы избегаете случайных ошибок и не сможете случайно удалить системные таблицы, работая от root. Разграничение прав - один из самых важных навыков админа
Если вашему проекту нужно подключение к MySQL с другого сервера, отредактируйте конфиг:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Найдите строку:
bind-address = 127.0.0.1
И замените на:
bind-address = 0.0.0.0
Как работать с nano писали в статье: Основы работы с редактором nano: команды, сохранение, выход
Это открывает MySQL для внешних подключений. Но делать это стоит только при использовании firewall и сложных паролей.
После изменений перезапустите MySQL:
sudo systemctl restart mysql
По умолчанию MySQL слушает порт 3306.
Если доступ извне нужен, разрешите подключение:
sudo ufw allow 3306
Без правила firewall соединение просто не дойдёт до сервера.
Подробнее про ufw: Защита сервера на Ubuntu или Debian с помощью ufw
iptables: Как открыть или закрыть порт в iptables
Самая простая проверка:
sudo systemctl status mysql
Также можно выполнить:
mysqladmin -u root -p version
Если видите информацию о сервере - всё настроено правильно.
1. Резервные копии
Используйте mysqldump или автоматический backup от хостера.
2. Следите за RAM
MySQL легко расходует память. Мониторинг через top или htop поможет понять нагрузку.
3. Храните пароли в переменных окружения
Это безопаснее, чем оставлять их в коде или конфиге.
4. Если MySQL не запускается
Проверьте логи:
sudo journalctl -u mysql
В 90% случаев там есть причина.
Мы обновили систему, установили MySQL, усилили безопасность, создали отдельного пользователя и разобрали доступ извне.