Цель
Данная документация описывает от А до Я процесс установки MySQL 8.4 на Debian 13 официальным методом Oracle через APT, а также:
- проверку работоспособности MySQL
- защиту экземпляра
- базовую настройку конфигурации
- перенос datadir при необходимости
- управление сервисом через
systemd
Важная информация о Debian 13
На 13 апреля 2026 года APT-репозиторий MySQL публикует пакеты для Debian 13 trixie, включая mysql-8.4-lts.
- Debian 13 можно использовать напрямую с репозиторием Oracle MySQL
- рекомендуемый метод — APT-репозиторий MySQL
- нет необходимости использовать нативные пакеты Debian, если цель — Oracle MySQL 8.4
Рекомендуемая архитектура
Для чистой установки:
- минимальная ОС Debian 13
- корректный hostname
- статический IP
- согласованная timezone
- отдельный диск для данных, если машина предназначена для продакшена
Разумная минимальная конфигурация:
| Компонент | Минимум |
|---|---|
| vCPU | 2 |
| RAM | 4 ГБ |
| Системный диск | 20 ГБ |
| Диск данных | 50 ГБ+ (отдельный datadir) |
1. Подготовка Debian 13
apt-get update
apt-get -y upgrade
apt-get install -y \
curl wget gnupg lsb-release ca-certificates \
apt-transport-https net-tools dnsutils sudo
Внимание: пакет software-properties-common не существует в Debian 13 (это пакет Ubuntu). Не включайте его.
timedatectl set-timezone Europe/Paris
cat /etc/os-release
Убедитесь, что VERSION_CODENAME=trixie.
2. Добавление APT-репозитория Oracle MySQL
Вариант A — С помощью mysql-apt-config (официальный метод)
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
dpkg -i mysql-apt-config_0.8.36-1_all.deb
apt-get update
Вариант B — Ручная настройка файла APT (рекомендуется)
Важно: GPG-ключ RPM-GPG-KEY-mysql-2023 истёк в октябре 2025. Используйте RPM-GPG-KEY-mysql-2025.
mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF
apt-get update
3. Установка MySQL 8.4
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
Это устанавливает сервер (mysql-community-server), клиент (mysql-community-client), плагины и общие файлы.
dpkg -l | grep -E 'mysql-(server|client|community)'
4. Проверка сервиса
systemctl status mysql --no-pager
systemctl is-active mysql
systemctl is-enabled mysql
mysql --version
mysql -Nse "SELECT VERSION();"
5. Первое подключение
При использовании DEBIAN_FRONTEND=noninteractive MySQL 8.4 на Debian 13 настраивает аутентификацию root через Unix-сокет (без пароля):
mysql
или:
sudo mysql
6. Защита экземпляра
С помощью официальной утилиты:
mysql_secure_installation
Или вручную:
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
7. Расположение файлов
| Файл | Путь |
|---|---|
| Конфигурация | /etc/mysql/ |
| Бинарный файл сервера | /usr/sbin/mysqld |
| Клиент | /usr/bin/mysql |
| Datadir | /var/lib/mysql |
| Сервис systemd | mysql.service |
| Пользовательская конфигурация | /etc/mysql/mysql.conf.d/zz-*.cnf |
8. Рекомендуемая базовая конфигурация
Добавьте отдельный файл вместо изменения существующих:
cat >/etc/mysql/mysql.conf.d/zz-custom.cnf <<'EOF'
[mysqld]
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
skip_name_resolve = ON
max_connections = 200
innodb_buffer_pool_size = 1G
log_error_verbosity = 2
EOF
systemctl restart mysql
Проверка:
mysql -Nse "SHOW VARIABLES LIKE 'bind_address';"
mysql -Nse "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
9. Открытие порта 3306
Если сервер должен принимать удалённые подключения:
CREATE USER 'admin'@'10.68.68.%' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ss -lntp | grep 3306
10. Перенос datadir в /srv/mysql
systemctl stop mysql
mkdir -p /srv/mysql
rsync -aHAX /var/lib/mysql/ /srv/mysql/
chown -R mysql:mysql /srv/mysql
chmod 750 /srv/mysql
cat >/etc/mysql/mysql.conf.d/zz-datadir.cnf <<'EOF'
[mysqld]
datadir = /srv/mysql
EOF
systemctl start mysql
mysql -Nse "SELECT @@datadir;"
Ожидаемый результат: /srv/mysql/
11. Активация performance_schema
Уже активна по умолчанию в MySQL 8.4.8:
mysql -Nse "SELECT @@performance_schema;"
При необходимости:
cat >/etc/mysql/mysql.conf.d/zz-performance.cnf <<'EOF'
[mysqld]
performance_schema = ON
EOF
systemctl restart mysql
12. Создание пользователя для администрирования
Избегайте использования root для всего:
CREATE USER 'dba'@'10.68.68.%' IDENTIFIED BY 'VeryStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
13. Резервное копирование конфигурации
tar czf /root/mysql-config-backup.tar.gz /etc/mysql
dpkg -l | grep mysql > /root/mysql-packages.txt
14. Типичные команды эксплуатации
systemctl start mysql
systemctl stop mysql
systemctl restart mysql
journalctl -u mysql -n 100 --no-pager
15. Финальная проверка
systemctl is-active mysql
mysql --version
mysql -Nse "SELECT VERSION();"
mysql -Nse "SELECT @@datadir;"
mysql -Nse "SELECT @@performance_schema;"
ss -lntp | grep 3306
16. Частые ловушки
- Не смешивайте MariaDB и Oracle MySQL — выберите одну ветку
- Истёкший GPG-ключ —
RPM-GPG-KEY-mysql-2023истёк, используйтеRPM-GPG-KEY-mysql-2025 software-properties-commonне существует — специфичен для Ubuntu, недоступен в Debian 13- Неправильный источник APT — используйте
trixie, а неbookworm - Прямое редактирование
mysqld.cnf— предпочтительнее файлzz-*.cnfв/etc/mysql/mysql.conf.d/ - Перенос datadir без остановки MySQL — всегда останавливайте сервис перед копированием
- Открытие 3306 без фильтрации — ограничьте хосты, фильтруйте на файрволе
Компактная процедура
apt-get update && apt-get -y upgrade
apt-get install -y wget gnupg ca-certificates curl sudo
mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
systemctl enable --now mysql
mysql -e "DELETE FROM mysql.user WHERE User=''; DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; FLUSH PRIVILEGES;"
Результат протестированной установки
Установка выполнена 13 апреля 2026 года на ВМ Proxmox:
- ВМ: VMID 115,
mysql84-deb13, IP10.68.68.190 - ОС: Debian 13.4 (trixie), ядро 6.12.74
- MySQL: 8.4.8 (MySQL Community Server - GPL)
- Сервис: активен, включён при загрузке
- Конфигурация: bind 0.0.0.0, skip_name_resolve ON, innodb_buffer_pool_size 1G, max_connections 200
- performance_schema: активна
- Порт 3306: слушает на 0.0.0.0
Заключение
На Debian 13 правильный метод установки MySQL 8.4 — использование APT-репозитория Oracle MySQL.
Исправления по сравнению с начальной документацией:
- GPG-ключ:
RPM-GPG-KEY-mysql-2023истёк, используйтеRPM-GPG-KEY-mysql-2025 - Зависимости: уберите
software-properties-common(не существует в Debian 13) - Подключение root: при
DEBIAN_FRONTEND=noninteractiveroot подключается через сокет без пароля - performance_schema: уже активна по умолчанию в MySQL 8.4.8
Комментарии (0)
Комментариев пока нет.
Оставить комментарий