Инструкция обновлена 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
Выполните команды для сброса пароля:
-
Обновите привилегии:
FLUSH PRIVILEGES;
-
Установите новый пароль:
Для MySQL 8.0+:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'НОВЫЙ_ПАРОЛЬ';
Альтернативный вариант для старых версий MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('НОВЫЙ_ПАРОЛЬ'), plugin='mysql_native_password' WHERE user='root';
-
Выйдите:
QUIT;
Шаг 4: Запустите сервер в штатном режиме
Закройте первое окно, где запущен сервер в безопасном режиме.
Во втором окне запустите службу обычным образом. Пример для MySQL 8.0:
net start MySQL80
Сброс пароля для MySQL 5.7 и более ранних версий
Если вы используете более старую версию MySQL, метод с Init-файлом может не сработать. В этом случае вернитесь к классическому методу --skip-grant-tables. Этот способ работает для обеих операционных систем — Linux и Windows:
-
Остановите службу.
-
Запустите с флагом
--skip-grant-tablesи--skip-networking:
mysqld --skip-networking --skip-grant-tables
-
Подключитесь к базе:
mysql -u root
-
Выполните:
FLUSH PRIVILEGES;
-
Выполните смену пароля (вместо
ALTERвозможно придется использоватьUPDATE):
UPDATE mysql.user SET Password=PASSWORD('НОВЫЙ_ПАРОЛЬ') WHERE User='root';
FLUSH PRIVILEGES;
-
Остановите и запустите сервер в штатном режиме.
Поскольку MySQL 5.7 прекратила получать обновления безопасности с октября 2023 года, обновление до более новой версии критически важно для защиты вашей инфраструктуры.
Особенности Timeweb Cloud
Если вы используете облачную базу данных в Timeweb Cloud, вам не нужно выполнять сложные процедуры сброса:
-
Для облачной базы MySQL пользователь root недоступен. Вместо него автоматически создается пользователь с ограниченным доступом к системным функциям, но с полными правами к созданным базам.
-
Вы можете скопировать текущий пароль и имя пользователя в личном кабинете.

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