<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Managed Kubernetes — разверните готовый кластер за 5 минут →
Вход / Регистрация

Как сбросить пароль root MySQL: пошаговая инструкция

10496
5 минут чтения
Средний рейтинг статьи: 5

Инструкция обновлена 13 октября 2025 г.

MySQL и MariaDB — самые популярные реляционные базы данных, а root-пароль является ключом к полному контролю над вашими данными. Если вы забыли или потеряли этот пароль, его можно восстановить.

Восстановление доступа требует прав root (или прав Администратора) к самому серверу, на котором установлена СУБД. Процесс включает временный запуск базы данных с отключенными или измененными механизмами безопасности для сброса пароля.

В этой инструкции мы покажем пошаговые методы для Ubuntu и Windows, отдавая предпочтение более современным и безопасным подходам.

Сброс пароля на Ubuntu: метод с init-файлом

Этот метод с использованием --init-file предпочтителен как для MySQL 8.0+, так и для MariaDB (версии 10.1+).

Шаг 1: Остановите сервер MySQL

Остановите службу базы данных, чтобы подготовиться к запуску в специальном режиме.

sudo systemctl stop mysql

Или для старых систем:

sudo service mysql stop

Шаг 2: Создайте временный init-файл

Создайте файл, содержащий команду для установки нового пароля для пользователя root. Этот файл будет выполнен при запуске сервера.

echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';" > /tmp/mysql-init

Важно: Замените НОВЫЙ_ПАРОЛЬ на ваш новый, надежный пароль.

Шаг 3: Запустите сервер с init-файлом и отключенной сетью

Запустите MySQL, указав путь к созданному init-файлу и отключив сеть (--skip-networking). Это предотвратит внешние подключения во время сброса.

sudo mysqld --init-file=/tmp/mysql-init --skip-networking

MySQL выполнит команду из /tmp/mysql-init и установит новый пароль.

Шаг 4: Проверьте и очистите

Удалите временный init-файл:

rm /tmp/mysql-init

Шаг 5: Запустите сервер в штатном режиме

Запустите службу MySQL обычным образом.

sudo systemctl start mysql

Или для старых систем:

sudo service mysql start

Шаг 6: Проверьте вход

Подключитесь к базе данных, используя новый пароль:

mysql -u root -p

Введите НОВЫЙ_ПАРОЛЬ в ответ на запрос сервера.

Сброс пароля на Windows: метод skip-grant-tables

На операционной системе Windows управление службами отличается, но логика сброса пароля остается прежней.

Шаг 1: Остановите службу MySQL

Запустите командную строку (CMD) или PowerShell от имени Администратора.

Остановите службу. Название может быть MySQL, MySQL80 или MariaDB. Пример для MySQL 8.0:

net stop MySQL80

Шаг 2: Запустите сервер без проверки прав

Перейдите в папку bin вашей установки MySQL/MariaDB. Пример пути: C:\Program Files\MySQL\MySQL Server X.X\bin.

Запустите сервер с отключенной проверкой привилегий в новом окне командной строки. Это окно должно оставаться открытым.

"C:\Program Files\MySQL\MySQL Server X.X\bin\mysqld" --skip-grant-tables

Шаг 3: Подключитесь и смените пароль

Откройте второе окно командной строки от Администратора. Перейдите в ту же папку bin и подключитесь:

mysql -u root

Выполните команды для сброса пароля:

  1. Обновите привилегии:

FLUSH PRIVILEGES;
  1. Установите новый пароль:

Для MySQL 8.0+:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';

Альтернативный вариант для старых версий MySQL:

UPDATE mysql.user SET authentication_string=PASSWORD('НОВЫЙ_ПАРОЛЬ'), plugin='mysql_native_password' WHERE user='root';
  1. Выйдите:

QUIT;

Шаг 4: Запустите сервер в штатном режиме

Закройте первое окно, где запущен сервер в безопасном режиме.

Во втором окне запустите службу обычным образом. Пример для MySQL 8.0:

net start MySQL80

Сброс пароля для MySQL 5.7 и более ранних версий

Если вы используете более старую версию MySQL, метод с Init-файлом может не сработать. В этом случае вернитесь к классическому методу --skip-grant-tables. Этот способ работает для обеих операционных систем — Linux и Windows:

  1. Остановите службу.

  2. Запустите с флагом --skip-grant-tables и --skip-networking:

mysqld --skip-networking --skip-grant-tables 
  1. Подключитесь к базе: 

mysql -u root
  1. Выполните: 

FLUSH PRIVILEGES;
  1. Выполните смену пароля (вместо ALTER возможно придется использовать UPDATE):

UPDATE mysql.user SET Password=PASSWORD('НОВЫЙ_ПАРОЛЬ') WHERE User='root';
FLUSH PRIVILEGES;
  1. Остановите и запустите сервер в штатном режиме.

Поскольку MySQL 5.7 прекратила получать обновления безопасности с октября 2023 года, обновление до более новой версии критически важно для защиты вашей инфраструктуры.

Особенности Timeweb Cloud

Если вы используете облачную базу данных в Timeweb Cloud, вам не нужно выполнять сложные процедуры сброса:

  • Для облачной базы MySQL пользователь root недоступен. Вместо него автоматически создается пользователь с ограниченным доступом к системным функциям, но с полными правами к созданным базам. 

  • Вы можете скопировать текущий пароль и имя пользователя в личном кабинете.

Image1

Заключение

Восстановление доступа к MySQL — это стандартная процедура, требующая, прежде всего, доступа к серверу. Используя методы с  init-файлом (на Linux) или --skip-grant-tables (на Windows или старых версиях MySQL), вы сможете быстро вернуть контроль над вашей СУБД.

Помните о безопасности:

  • Используйте надежный, сложный пароль.

  • Сразу после сброса убедитесь, что временные файлы (вроде /tmp/mysql-init) удалены, а сервер работает в штатном режиме.

  • Для критически важных проектов всегда рассматривайте использование облачных баз данных от провайдеров, таких как Timeweb Cloud, где управление паролями и базовой безопасностью упрощено и автоматизировано.

10496
5 минут чтения
Средний рейтинг статьи: 5

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
Пока нет комментариев