Сброс пароля root в MySQL: простое решение общей проблемы

MySQL является одной из самых популярных систем управления базами данных. Однако иногда администраторы сталкиваются с проблемой восстановления пароля root из-за его утери или истечения срока действия. В этой статье мы подробно разберем несколько способов сброса пароля root в MySQL как для Ubuntu, так и для CentOS.

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

Проверка текущей версии MySQL или MariaDB

В зависимости от установленной версии сервера базы данных, могут использоваться разные команды для сброса пароля root. Давайте проверим текущую версию:

mysql --version

В ответе будет указана информация о версии сервера. Например, для MySQL:

mysql Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

А для MariaDB:

mariadb Ver 15.1 Distrib 10.1.37-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Остановка сервиса базы данных

Перед внесением изменений в настройки безопасности MySQL, необходимо остановить сервис для предотвращения конфликтов при одновременном доступе.

В Ubuntu выполняем:

sudo systemctl stop mysql

В CentOS используем:

sudo systemctl stop mariadb

Женщина в офисе читает лекцию на фоне окна

Запуск MySQL без проверки прав доступа

Чтобы сбросить пароль root, нужно запустить сервер базы данных в специальном режиме без проверки прав доступа пользователей. Это можно сделать двумя способами.

1. Запуск с параметром --skip-grant-tables

Первый способ - добавить опцию --skip-grant-tables. Тогда сервер MySQL не будет загружать таблицы привилегий при старте:

sudo mysqld --skip-grant-tables &

2. Использование опции --init-file

Второй подход заключается в создании специального SQL-файла, который будет выполнен сразу после запуска сервера. Это позволит сбросить пароль непосредственно при старте MySQL.

Синтаксис выглядит так:

sudo mysqld --init-file=/path/to/myfile.sql &

Подключение к консоли MySQL от имени root

Теперь, когда сервер базы данных запущен в режиме без проверки прав доступа, можно подключиться к нему от имени пользователя root без необходимости ввода пароля:

mysql -u root

После этого мы попадаем в консоль MySQL и уже можем выполнить команду по сбросу пароля.

Рыжеволосая девушка печатает код на ноутбуке

Непосредственный сброс пароля root в MySQL

Рассмотрим разные способы непосредственной смены пароля root в зависимости от версии MySQL или MariaDB.

1. Сброс через команду ALTER USER

В MySQL версии 5.7.6 и выше, а также в MariaDB версии 10.1.20 и выше для изменения паролей используется удобная команда ALTER USER. Давайте разберем работу с ней.

2. Перезагрузка привилегий и смена пароля

Сначала нужно перечитать права доступа командой FLUSH PRIVILEGES:

FLUSH PRIVILEGES;

Затем можно непосредственно сбросить пароль, указав новое значение:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'mynewpassword';

Примеры запуска команды ALTER в MySQL и MariaDB

Рассмотрим конкретные примеры выполнения ALTER USER в MySQL 8.0:

FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass1234';

А также в MariaDB 15:

FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'StR0ngP@ssw0rd';

В более старых версиях MySQL и MariaDB используется другой подход с помощью конструкции UPDATE...SET.

Синтаксис команды UPDATE для смены пароля

Синтаксис выглядит следующим образом:

UPDATE mysql.user SET password = PASSWORD('новый_пароль') WHERE user = 'root';

То есть мы обновляем запись в таблице mysql.user для пользователя root.

Использование утилиты mysqladmin

Еще один удобный инструмент для управления MySQL - это утилита mysqladmin. Она также позволяет сбрасывать пароль root.

Для смены пароля используется ключ -p:

mysqladmin -u root -p password 'новый_пароль'

Где вместо 'новый_пароль' нужно указать желаемое значение.

Например, выполним сброс пароля root для MariaDB:

mysqladmin -u root -p password 'Str0ngP@ssword'

MySQL запросит старый пароль (который мы не знаем). Просто нажмите Enter. После чего будет установлен новый пароль 'Str0ngP@ssword'.

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.