Для установки MySQL на сервере LinuxОбновите индекс пакетов, установите... MySQL Установите серверный пакет, запустите и включите службу, выполните команду mysql_secure_installation для повышения уровня безопасности, а также создайте базу данных и пользователя. В Ubuntu/Debian используйте apt; в RHEL/CentOS/Rocky/AlmaLinux используйте dnf/yum или официальный репозиторий. MySQL репозиторий для последней версии.
Установка MySQL Установка на сервер Linux довольно проста, если следовать правильным шагам. В этом руководстве вы узнаете, как установить... MySQL Обеспечьте безопасность системы для использования в производственной среде на дистрибутивах Ubuntu/Debian и RHEL. включить удаленный доступНастройте базовую производительность и убедитесь, что все работает — используя команды, которые можно безопасно скопировать и запустить. Это руководство отражает практические методы, используемые на клиентских серверах. YouStable.
Предпосылки и системные требования
Прежде чем начать, убедитесь, что ваш Linux-сервер соответствует основным требованиям и у вас есть необходимые права доступа.
- Права root или sudo на сервере.
- Поддерживаемые дистрибутивы: Ubuntu 20.04/22.04/24.04; Debian 11/12; RHEL/CentOS 7/8/9; Rocky/AlmaLinux 8/9.
- Доступ к репозиториям пакетов и порту 3306 (если к ним будут подключаться удаленные клиенты).
- Не менее 1 ГБ RAM Для небольших нагрузок; для производственных задач рекомендуется 2 ГБ и более.
- Точное серверное время (NTP) во избежание проблем с репликацией/TLS.
Выберите правильный MySQL Издательство и хранилище
Большинство репозиториев Linux предоставляют либо то, либо другое. MySQL или MariaDB. Для получения последней версии. MySQL 8 особенностей, обратите внимание на официальную информацию. MySQL репозиторий. Если предпочтительнее стабильность при интеграции с дистрибутивом, используйте репозитории по умолчанию. Принимайте решение, исходя из требований приложения, совместимости драйверов и целей долгосрочного обслуживания.
MySQL против MariaDB (краткий обзор)
- MySQL 8.0: Надежный JSON, оконные функции, роли, аутентификация по умолчанию caching_sha2_password, ориентация на InnoDB.
- MariaDB: Разработанная сообществом форк-версия, часто поставляется по умолчанию в дистрибутивах, подобных RHEL, с несколько иными функциями и системными переменными.
- Совет: выбирайте приложение в соответствии с его требованиями. Не все функции и особенности воспроизведения взаимозаменяемы.
Установите MySQL на Ubuntu/Debian
В дистрибутивах на основе Debian вы можете установить репозиторий по умолчанию MySQL сервер (довольно часто MySQL 8 (на более новых версиях Ubuntu) или используйте репозиторий APT от Oracle для получения последней общедоступной версии.
Вариант A: Установить MySQL из репозиториев Ubuntu/Debian
sudo apt update
sudo apt install -y mysql-server
sudo systemctl enable --now mysql
sudo systemctl status mysql --no-pagerЗапустите скрипт безопасной установки, чтобы установить пароль root, удалить тестовые базы данных и запретить доступ анонимным пользователям:
sudo mysql_secure_installationВ зависимости от распределения, MySQL Пользователь root может аутентифицироваться через сокет (без пароля) или с помощью пароля. Если вам это необходимо аутентификация по паролюУстановите это явно после входа в систему с помощью sudo:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'StrongRootPass#2025';
FLUSH PRIVILEGES;
EXIT;Вариант B: Установить последнюю версию MySQL 8 через официальный репозиторий APT
Для самых последних MySQL GA-релиз и такие инструменты, как MySQL В командной оболочке используйте репозиторий Oracle APT:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb # Select MySQL Server & Tools
sudo apt update
sudo apt install -y mysql-server
sudo systemctl enable --now mysqlЗамените версию пакета конфигурации APT на последнюю с сайта dev.mysql.com. Затем выполните безопасную установку, как показано ранее.
Установите MySQL на RHEL/CentOS/Rocky/AlmaLinux
В системах, подобных RHEL, MariaDB может поставляться по умолчанию. Чтобы убедиться в правильности установки, необходимо установить именно её. MySQL, использовать MySQL Репозиторий Yum или модуль AppStream, если он доступен.
Вариант А: Использовать официальный MySQL Репозиторий Yum/DNF
# Download and install the MySQL repo package (example for EL8/EL9)
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf module disable -y mysql mariadb || true
sudo dnf clean all
sudo dnf install -y mysql-community-server
sudo systemctl enable --now mysqld
sudo systemctl status mysqld --no-pagerПри первом запуске, MySQL В журнале может быть сгенерирован временный пароль root. Получите его, а затем запустите безопасную установку:
sudo grep 'temporary password' /var/log/mysqld.log
sudo mysql_secure_installationВариант B: Использовать модуль AppStream (если MySQL 8 (доступно)
sudo dnf module list mysql
sudo dnf module enable -y mysql:8.0
sudo dnf install -y @mysql
sudo systemctl enable --now mysqldУбедитесь, что служба запущена, и защитите её, как описано выше.
Первоначальная настройка и лучшие практики
Создайте базу данных и пользователя с минимальными привилегиями.
Для каждого приложения используйте отдельного пользователя с минимальными правами доступа. Замените заполнители своими значениями.
sudo mysql -u root -p
-- Inside MySQL shell:
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongAppPass#2025';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Вопросы, касающиеся плагина аутентификации.
MySQL В версии 8 по умолчанию используется параметр caching_sha2_password. Некоторые старые клиенты поддерживают только mysql_native_password. При необходимости установите его для каждого пользователя (а не глобально), чтобы избежать ослабления безопасности для всех учетных записей:
ALTER USER 'appuser'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'StrongAppPass#2025';
FLUSH PRIVILEGES;Включить удалённый доступ (необязательно)
Разрешите удаленный доступ только при необходимости и ограничьте его по IP-адресу. Соответственно обновите параметры bind-dress и настройки брандмауэра.
- Конфигурационный файл Ubuntu/Debian: /etc/mysql/mysql.conf.d/mysqld.cnf
- Конфигурационный файл, аналогичный RHEL: /etc/my.cnf или /etc/my.cnf.d/mysqld.cnf
# In the [mysqld] section:
bind-address = 0.0.0.0
# or comment the bind-address line to listen on all interfacesRestart MySQL и создайте пользователя с ограниченным доступом по IP-адресу вашего сервера приложений:
sudo systemctl restart mysql # Ubuntu/Debian
# or
sudo systemctl restart mysqld # RHEL-like
sudo mysql -u root -p
CREATE USER 'appuser'@'203.0.113.10' IDENTIFIED BY 'StrongAppPass#2025';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'203.0.113.10';
FLUSH PRIVILEGES;
EXIT;Откройте порт 3306 в брандмауэре (если требуется удаленный доступ).
# UFW (Ubuntu):
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp
# firewalld (RHEL-like):
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="tcp" port="3306" accept' --permanent
sudo firewall-cmd --reloadИспользуйте список разрешенных IP-адресов вместо открытия порта 3306 для всего мира. Если SELinux принудительно устанавливает ограничения, разрешите доступ. MySQL для подключения по сети, где это необходимо:
# Example SELinux adjustment (if needed for network access):
sudo setsebool -P mysql_connect_any 1Проверьте установку и быстро устраните неполадки.
Проверка версии и работоспособности сервисов.
mysql --version
systemctl status mysql # Ubuntu/Debian
systemctl status mysqld # RHEL-like
# Connect and show databases
mysql -u root -p -e "SHOW DATABASES;"Журналы событий и распространенные проблемы
- Файлы журналов: /var/log/mysql/error.log (Ubuntu/Debian), /var/log/mysqld.log (RHEL-подобные системы).
- Используемый порт: Убедитесь, что к порту 3306 не привязана никакая другая служба (используйте команду ss -lntp | grep 3306).
- Ошибки аутентификации: Подтвердите правильность плагина, хоста (например, localhost вместо %) и пароля.
- Память: На небольших серверах уменьшите размеры буферов, чтобы избежать ошибок нехватки памяти (OOM).
Базовая настройка производительности (безопасные значения по умолчанию)
Начинайте с небольших серверов, придерживаясь консервативного подхода, и корректируйте настройки в зависимости от нагрузки и количества медленных запросов в журнале.
# Add to mysqld section (paths differ by distro)
innodb_buffer_pool_size = 512M
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
max_connections = 200
thread_cache_size = 50
query_cache_type = 0 # MySQL 8 ignores query cache; ensure disabled
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1После внесения изменений перезапустите программу. MySQL а также отслеживать производительность с помощью команды SHOW GLOBAL STATUS, просматривать журналы медленных процессов и отслеживать время отклика приложений.
Резервное копирование и техническое обслуживание
Логические резервные копии (mysqldump/mysqlpump)
# Backup one database
mysqldump -u root -p --routines --triggers --single-transaction appdb > appdb_$(date +%F).sql
# Restore
mysql -u root -p appdb < appdb_YYYY-MM-DD.sqlДля больших массивов данных или восстановления на определенный момент времени следует рассмотреть следующие варианты: MySQL Enterprise Backup или Percona XtraBackup (физические резервные копии). Всегда проверяйте восстановление.
Обновления и исправления
- Запланируйте окна технического обслуживания для обновления до минорных версий.
- Перед установкой патча сделайте резервную копию.
- Ubuntu/Debian: sudo apt update && sudo apt upgrade.
- В RHEL-подобных системах: sudo dnf update или sudo yum update.
- Ознакомьтесь с примечаниями к выпуску, чтобы узнать об изменениях в аутентификации или репликации.
Безопасный MySQL для производства
- Запустите mysql_secure_installation и установите надежные, уникальные пароли.
- Отключить удаленный вход от имени root; создать учетных записей администратора с ограниченным доступом по IP-адресу.
- Используйте TLS для клиентских подключений (настройте параметры ssl_cert, ssl_key, ssl_ca в mysqld).
- Предоставляйте минимальные привилегии; избегайте использования команды GRANT ALL для *.* для пользователей приложения.
- Произведите ротацию учетных данных и удалите неиспользуемые учетные записи/базы данных.
- Включите журнал медленных запросов и регулярно его просматривайте.
Пример из реальной жизни: приложение и база данных на отдельных серверах.
- Создайте пользователя приложения с ограниченным доступом только к IP-адресу сервера приложений.
- Открыть порт 3306 только для этого IP-адреса (UFW или firewalld).
- связующее вещество MySQL до 0.0.0.0 и обеспечить использование TLS для производственного трафика.
- Отслеживайте соединения с помощью параметра performance_schema и входы в систему в журналах ошибок.
- Установите постоянное серверное время (NTP) для получения точных журналов и резервных копий.
Когда следует выбрать управляемый хостинг или помощь экспертов?
Если вы предпочитаете сосредоточиться на разработке приложения, а не на обслуживании базы данных, рассмотрите следующие варианты. manageсерверы или оптимизированный хостинг. YouStableТарифные планы хостинга от настроены для MySQLВключает в себя приложения на основе LAMP и рекомендации по безопасной настройке, оптимизации производительности и стратегии резервного копирования — идеально подходит для WordPress, стеков LAMP/LEMP и рабочих нагрузок SaaS.
Полная шпаргалка по командам
# Ubuntu/Debian quick install
sudo apt update && sudo apt install -y mysql-server
sudo systemctl enable --now mysql
sudo mysql_secure_installation
# RHEL/CentOS/Rocky/Alma quick install (MySQL repo)
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf module disable -y mysql mariadb || true
sudo dnf install -y mysql-community-server
sudo systemctl enable --now mysqld
sudo mysql_secure_installation
# Create DB and user
sudo mysql -u root -p -e "
CREATE DATABASE appdb;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongAppPass#2025';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;"
# Open firewall for one host (examples)
sudo ufw allow from 203.0.113.10 to any port 3306 proto tcp
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="tcp" port="3306" accept' --permanent
sudo firewall-cmd --reloadЧасто задаваемые вопросы: Установка MySQL на сервере Linux
Как установить MySQL на Убунту?
Выполните команду `sudo apt update`, затем `sudo apt install -y mysql-server`. Включите и запустите службу с помощью команды `sudo systemctl enable –now mysql`. Наконец, защитите её с помощью команды `sudo mysql_secure_installation`. Для получения самой новой версии... MySQL 8. Перед установкой добавьте репозиторий APT от Oracle с сайта dev.mysql.com.
Что по умолчанию MySQL Пароль root в Linux?
В Ubuntu/Debian аутентификация root может осуществляться через сокет (без пароля) или запрашивать его установку во время выполнения команды mysql_secure_installation. В системах типа RHEL используется... MySQL В репозитории после первого запуска в файл /var/log/mysqld.log записывается временный пароль root.
Как включить удалённые подключения? MySQL?
Редактировать MySQL Настройте прослушивание по адресу 0.0.0.0 (bind-address), добавьте пользователя с ограниченным доступом только к IP-адресу вашего клиента и откройте порт 3306 в брандмауэре только для этого IP-адреса. Перезапустите систему. MySQL и протестируйте с помощью команды `mysql -h DB_HOST -u USER -p`. Всегда избегайте публичного доступа к порту 3306.
Is MySQL Или MariaDB лучше подходит для серверов Linux?
Оба варианта хороши. Выбирайте. MySQL 8 — для использования новейших функций, поддерживаемых Oracle, и широкой совместимости с экосистемой. Выберите MariaDB, если предпочитаете разработку, управляемую сообществом, или если она используется по умолчанию в вашем дистрибутиве. Перед переключением проверьте поддержку драйверов вашего приложения.
Как я могу полностью удалить MySQL из Linux?
В Ubuntu/Debian: выполните команду sudo apt purge -y mysql-server mysql-common; затем выполните команду sudo apt autoremove -y и удалите остаточные данные в /var/lib/mysql (после резервного копирования). В системах типа RHEL: выполните команду sudo dnf remove -y mysql* и очистите все оставшиеся конфигурационные файлы, затем удалите /var/lib/mysql, если это необходимо.
Как восстановить потерянный аккаунт? MySQL Пароль root?
Stop MySQLЗапустите его с параметром –skip-grant-tables, подключитесь без пароля, обновите root. пароль пользователяЗатем перезагрузите систему в обычном режиме. Следуйте официальным инструкциям. MySQL 8. Подробные инструкции по настройке вашего дистрибутива см. в документации. Обязательно ограничьте доступ к серверу во время процесса.
Какой порт делает MySQL Использовать, и нужно ли мне это менять?
MySQL Используется TCP-порт 3306. Вы можете его изменить, но безопасность должна основываться на надежной аутентификации, TLS, брандмауэрах и списке разрешенных IP-адресов. Если вы меняете порт, обновите брандмауэры, SELinux и строки подключения приложений соответствующим образом.
Выполнив эти шаги, вы сможете уверенно установить систему. MySQL На сервере Linux обеспечьте его безопасность и подготовьте к работе в производственной среде. Если вам нужен хостинг с поддержкой экспертов, оптимизированный для... MySQL и Вордпресс, YouStable Мы поможем вам развернуть, оптимизировать и поддерживать вашу систему, используя лучшие практики с самого первого дня.
