Как сбросить пароль root в MySQL (Percona Server) на Debian 12.7 через безопасный режим (skip-grant-tables)?

Сброс пароля root в Percona Server (MySQL-совместимый) на Debian 12.7 через режим skip-grant-tables выполняется в несколько шагов. Этот метод позволяет войти в сервер без аутентификации и установить новый пароль.

**Шаг 1. Остановите службу Percona Server**

Выполните команду:

sudo systemctl stop mysql

**Шаг 2. Запустите MySQL в безопасном режиме**

Отредактируйте конфигурационный файл `/etc/mysql/mysql.conf.d/mysqld.cnf` (или `/etc/mysql/percona-server.conf.d/mysqld.cnf`) и добавьте в секцию `[mysqld]` строку:

skip-grant-tables
skip-networking

Параметр `skip-networking` дополнительно блокирует сетевые подключения, что повышает безопасность во время сброса пароля.

Затем запустите сервис:

sudo systemctl start mysql

**Шаг 3. Подключитесь к MySQL без пароля**

mysql -u root

**Шаг 4. Сбросьте пароль**

В консоли MySQL выполните:
sql
FLUSH PRIVILEGES;
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘НовыйПароль’;
FLUSH PRIVILEGES;

Если команда `ALTER USER` не работает, попробуйте:
sql
UPDATE mysql.user SET authentication_string=» WHERE User=’root’ AND Host=’localhost’;
FLUSH PRIVILEGES;
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘НовыйПароль’;

**Шаг 5. Верните конфигурацию в исходное состояние**

Удалите или закомментируйте строки `skip-grant-tables` и `skip-networking` из конфигурационного файла, затем перезапустите сервис:

sudo systemctl restart mysql

**Шаг 6. Проверьте подключение с новым паролем**

mysql -u root -p

Введите новый пароль — вы должны успешно войти.

**Важные замечания:**
— Никогда не оставляйте сервер запущенным с `skip-grant-tables` дольше, чем необходимо — это полностью отключает аутентификацию.
— В Percona Server 8.x используется плагин `caching_sha2_password` по умолчанию. Если нужна совместимость со старыми клиентами, укажите плагин явно: `IDENTIFIED WITH mysql_native_password BY ‘НовыйПароль’`.
— Убедитесь, что файл конфигурации принадлежит пользователю `root` и имеет права `644`.
— После сброса рекомендуется выполнить `mysql_secure_installation` для дополнительной защиты сервера.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.