Как изменить (сбросить) root пароль в MySQL
Довольно часто происходит такая ситуация, что пароль для учетной записи root в MySQL необходимо восстановить, поменять или сбросить. Хорошо, если он известен, но бывают случаи, когда пароль был утерян или неизвестен с самого начала. В данной статье пойдет речь о том, как этот пароль восстановить, имея доступ к серверу, на котором запущен mysql-server для обоих случаев, когда пароль о учетной записи root ИЗВЕСТЕН и НЕ ИЗВЕСТЕН.
Если пароль root ИЗВЕСТЕН
Возьмем самую простую ситуацию, когда пароль от учетной записи root вам известен и все что нужно сделать, это просто его поменять. Чтобы задать новый пароль для учетной записи root, необходимо проделать следующие действия:
В том случае, если вы пользуетесь каким-либо веб-интерфейсом, например, phpMyAdmin
, то тогда вы можете пропустить пункт 1 и сразу же выполнить запрос для нужной версии MySQL (пункт 2) прямо из интерфейса phpMyAdmin (вкладка SQL).
1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):
2) Меняем пароль для пользователя root:
Для MySQL версий 5.7.6
и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5
и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
3) Перезагружаем привилегии, чтобы изменения вступили в силу:
4) Для выхода из консоли MySQL сервера выполняем команду выхода:
После этого, пароль должен поменяться.
Если пароль root НЕ ИЗВЕСТЕН
Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:
1) Останавливаем mysqld:
2) Проверяем, что нет запущенных процессов mysqld:
Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:
3) Создаем каталог
для запуска mysqld в safe режиме из консоли
4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)
5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.
В случае успешного запуска, вывод в консоли должен быть примерно таким:
6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:
7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded
«, а нам это не нужно:
Вывод в результате выполнения данной команды должен быть примерно таким:
Перезагружаем привилегии:
9) Меняем пароль для нужного пользователя, в нашем случае это root:
Для MySQL версий 5.7.6
и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5
и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
9) После чего, вводим команду exit для отключения:
10) Выключаем запущенный в ручном режиме Mysqld сервер:
Если все пройдет успешно, то вывод должен быть примерно таким:
Если же команда не сработала и вы получаете вот такую (или любую другую) ошибку:
То можно принудительно завершить процесс с помощью следующей команды:
11) Проверяем, что нет запущенных процессов mysqld:
12) Запускаем Mysql-server в нормальном режиме:
И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.
Оценить статью
Шаг 2 — перезапустите сервер базы данных без проверки разрешений
Запуск MySQL и MariaDB без проверки разрешений позволяет получить root-доступ к командной строке базы данных без необходимости указывать действительный пароль. Для этого нужно остановить загрузку базы данныхФорма авторизации, TheстолХраните информацию о полномочиях пользователей. Поскольку это небольшая угроза безопасности, вам также может потребоваться отключить сеть, чтобы другие клиенты не могли подключаться к временно уязвимым серверам.
В соответствии с установленным сервером базы данных запустите сервер без загрузкиФорма авторизацииразные.
Настройте MariaDB для запуска без таблицы авторизации
Чтобы запустить сервер MariaDB без формы авторизации, мы будем использоватьФайл модуля устанавливает другие параметры для демона сервера MariaDB.
Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, используемую MariaDB при запуске. Чтобыс участиемЭта опция указывает MariaDB запускаться без загрузки таблицы авторизации или сетевых функций:
Затем запустите сервер MariaDB:
Эта команда не выдаст никаких результатов, но перезапустит сервер базы данных с учетом новых настроек переменных среды.
Вы можете убедиться в этом 。
Теперь вы сможете использовать MariaDBrootПодключитесь к базе данных как пользователь без ввода пароля:
Вы сразу увидите приглашение оболочки базы данных:
Теперь вы можете получить доступ к серверу базы данных, вы можете изменитьrootПароль, как показано на шаге 3.
Настройте MySQL для запуска без таблиц авторизации
Чтобы запустить сервер MySQL без таблицы авторизации, вы измените конфигурацию MySQL systemd, чтобы передать на сервер другие параметры командной строки при запуске.
Для этого выполните следующую команду:
Эта команда будетОткройте новый файл в редакторе, вы будете использовать редактор для редактирования MySQL.Покрытие услуг. Это изменяет параметры службы MySQL по умолчанию. Этот файл будет пустым, поэтому добавьте следующее:
Покрытие службы MySQL
ПервыйОператор очищает значение по умолчанию, а второй операторПредоставляет новые команды запуска, включая параметры, отключающие загрузку таблиц авторизации и сетевых функций.
НажмитеВыйдите из файла и нажмитеСохраните изменения и нажмитеПодтвердите имя файла.
ПерезагрузитьНастройте, чтобы применить эти изменения:
Теперь запустите сервер MySQL:
Команда не отобразит вывод, но сервер базы данных запустится. Форма авторизации и сеть не будут включены.
Подключитесь к базе данных как пользователь root:
Вы сразу увидите приглашение оболочки базы данных:
Теперь вы можете получить доступ к серверу, вы можете изменитьrootпароль.
Как сбросить пароль root в MySQL
Для получения доступа к MySQL или другие популярные системы управления базами данных, пользователю необходимо ввести данные аутентификации, так называемые логин и пароль к базе. Это стандартный процесс авторизации.
Учетная запись root создается автоматически во время установки. По своей задумке она напоминает привилегированную учетную запись суперпользователя в системе Линукс.
Обычно пароль вводится пользователем вручную, по окончанию процесса установки. Если юзер системы сохраняет личную информацию, у него не должно возникнуть трудностей с авторизацией в дальнейшем, однако на практике пароль забывается или не записывается, получается, что ценная информация утеряна.
Не торопитесь расстраиваться, поскольку подобные проблемы решаются легко и быстро, для этого необходимо выполнить обычный сброс пароля.
Как поменять пароль root в MySQL
Если пароль root ИЗВЕСТЕН
Возьмем самую простую ситуацию, когда пароль от учетной записи root вам известен и все что нужно сделать, это просто его поменять. Чтобы задать новый пароль для учетной записи root, необходимо проделать следующие действия:
В том случае, если вы пользуетесь каким-либо веб-интерфейсом, например, phpMyAdmin, то тогда вы можете пропустить пункт 1 и сразу же выполнить запрос для нужной версии MySQL (пункт 2) прямо из интерфейса phpMyAdmin (вкладка SQL).
1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):
2) Меняем пароль для пользователя root:
Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
3) Перезагружаем привилегии, чтобы изменения вступили в силу:
4) Для выхода из консоли MySQL сервера выполняем команду выхода:
После этого, пароль должен поменяться.
Если пароль root НЕ ИЗВЕСТЕН
Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:
1) Останавливаем mysqld:
2) Проверяем, что нет запущенных процессов mysqld:
Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:
3) Создаем каталог для запуска mysqld в safe режиме из консоли
4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)
5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.
В случае успешного запуска, вывод в консоли должен быть примерно таким:
6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:
7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded», а нам это не нужно:
Вывод в результате выполнения данной команды должен быть примерно таким:
Перезагружаем привилегии:
9) Меняем пароль для нужного пользователя, в нашем случае это root:
Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8…)
Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3…)
— это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
9) После чего, вводим команду exit для отключения:
10) Выключаем запущенный в ручном режиме Mysqld сервер:
Если все пройдет успешно, то вывод должен быть примерно таким:
Если же команда не сработала и вы получаете вот такую (или любую другую) ошибку:
То можно принудительно завершить процесс с помощью следующей команды:
11) Проверяем, что нет запущенных процессов mysqld:
Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:
12) Запускаем Mysql-server в нормальном режиме:
И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.
Что делать?
Во-первых, нужно убедиться, что вы используете правильные имя пользователя и пароль. Для этого нужно подключиться к MySQL с правами администратора (если ошибка 1045 не дает такой возможности, то нужно перезапустить сервер MySQL в режиме —skip-grant-tables), посмотреть содержимое таблицы user служебной базы mysql, в которой хранится информация о пользователях, и при необходимости отредактировать её.
SELECT user,host,password FROM mysql.user;
+—————+——————+——————————————-+
| user | host | password |
+—————+——————+——————————————-+
| root | house-f26710394 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| aa | localhost | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| test | localhost | |
| new_user | % | |
| | % | *D7D6F58029EDE62070BA204436DE23AC54D8BD8A |
| new@localhost | % | *ADD102DFD6933E93BCAD95E311360EC45494AA6E |
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+—————+——————+——————————————-+
Если изначально была ошибка:
-
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
значит вы указывали при подключении неверный пароль, так как пользователь root@localhost существует. Сам пароль храниться в зашифрованном виде и его нельзя узнать, можно лишь задать новый
SET PASSWORD FOR root@localhost=PASSWORD(‘новый пароль’);
-
ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost’ (using password: YES)
в данном случае в таблице привилегий отсутствует пользователь ‘ODBC’@’localhost’. Его нужно создать, используя команды GRANT, CREATE USER и SET PASSWORD.
Экзотический пример. Устанавливаете новый пароль для root@localhost в режиме —skip-grant-tables, однако после перезагрузки сервера по прежнему возникает ошибка при подключении через консольный клиент:ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
Оказалось, что было установлено два сервера MySQL, настроенных на один порт.
Сбрасываем при помощи init файла
Алгоритм действий простой:
- создаем файл;
- затем записываем sql запрос в файл;
- останавливаем сервис mysql;
- запускаем сервис mysql с указанием init файла.
С помощью редактора nano создадим файл init-sql, при этом он должен быть доступен для чтения.
- nano — название консольного редактора;
- ya — домашний каталог пользователя ya;
- init-sql — название нового файла.
Далее копируем строчку ниже в буфер обмена и вставляем в init-sql (горячие клавиши для вставки текста из буфера CTRL + U)
UPDATE mysql.user SET password=password(‘new-parol’) WHERE user=’root’;
где «new-parol» — это новый пароль юзера root.
Останавливаем сервис mysql.
# systemctl stop mysql
Далее нужно выполнить файл:
# mysqld —user=musql —init-file=/home/ya/init-sql —console
Чтобы всё сработало, как положено, ждем несколько минут.
Если процесс завис — останавливаем его.
Теперь запустим mysql традиционным способом. При авторизации в системе вводим новый пароль, в моем случае это «new-parol»:
Смотрим видео аналогичный пример с init файлов только уже в windows.
Какие пароли бывают в Ubuntu
Сначала нужно обговорить какие пароли бывают и что мы будем сбрасывать. Потому что Ubuntu несколько отличается от других дистрибутивов в этом плане. В большинстве дистрибутивов Linux есть пользователь root, он имеет полномочия на выполнение всех действий и от его имени можно авторизоваться, как и от любого другого пользователя.
Но Ubuntu пошла другим путем. Здесь тоже есть суперпользователь, но из соображений безопасности, по умолчанию, вы не можете авторизоваться от его имени. Все действия выполняются через утилиту sudo от имени обычного пользователя. Пароль для пользователя root не задан и трогать его мы не будем. А будем восстанавливать пароль для текущего пользователя.
Если вы не знаете какое имя у вашего текущего пользователя, его можно посмотреть с помощью такой команды:
Это имя пригодится вам для сброса пароля.
Шаг 4 — Смена пароля рута
Теперь вы можете подключиться к базе данных как пользователь рут, у которого не спросят пароль.
Открываем новое окно командной строки, можно без прав администратора.
Опять переходим в нужную папку
И подключаемся к серверу MySQL/MariaDB
Вы сразу же увидите приглашение оболочки базы данных. Приглашение командной строки MySQL:
Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.
Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены. Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду:
Теперь действительно мы можем поменять пароль рута.
Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:
Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:
Не забудьте поменять новый_пароль на выбранный вами новый пароль.
Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее вместо этой вы можете попробовать UPDATE … SET для сброса root пароля:
После этого не забудьте перегрузить таблицы привилегий:
В любом случае вы должны видеть подтверждение, что команда успешно выполнена. Вывод:
Выходим из сессии:
Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.
2: Перезапуск сервера базы данных без проверки прав доступа
Режим MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке БД с правами root, не предоставляя действительного пароля. Чтобы включить этот режим, необходимо запретить базе данных загружать таблицы привилегий, в которых хранится информация о доступе пользователей. Поскольку такой режим представляет некоторую угрозу безопасности, рекомендуем также отключить сеть, чтобы другие клиенты не смогли подключиться к временно уязвимому серверу.
Процедура запуска сервера без загрузки таблиц привилегий в MariaDB и MySQL различается.
Запуск MariaDB без таблиц привилегий
Чтобы запустить сервер MariaDB без таблиц привилегий, мы воспользуемся юнит-файлом systemd – в нем нужно установить дополнительные параметры для демона сервера MariaDB.
Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, которую MariaDB использует при запуске. Параметры –skip-grant-tables и –skip-networking запустят MariaDB без загрузки таблиц привилегий или сетевых функций.
Затем запустите сервер MariaDB:
Эта команда не выведет на экран никаких результатов, но перезапустит сервер базы данных с учетом новых настроек.
Вы можете убедиться, что сервер запущен с помощью команды:
Теперь вы сможете подключиться к базе данных как root пользователь MariaDB без пароля:
На экране сразу появится командная оболочка базы данных.
Теперь, когда у вас есть доступ к серверу базы данных MariaDB, вы можете изменить пароль root – перейдите к разделу 3.
Запуск MySQL без таблиц привилегий
Чтобы запустить сервер MySQL без таблиц привилегий, нужно изменить конфигурацию systemd для MySQL: при запуске сервер должен передавать дополнительные параметры командной строки.
Для этого выполните следующую команду:
Эта команда откроет в редакторе nano новый файл, который вы будете использовать для редактирования переопределений сервиса MySQL. Они изменяют стандартные параметры MySQL.
Этот файл сейчас пуст. Добавьте в него следующие строки:
Первый оператор ExecStart сбрасывает значение по умолчанию, а второй предоставляет systemd новую команду для запуска сервиса – она содержит параметры, которые отключат загрузку таблиц привилегий и сетевые соединения.
Нажмите Ctrl-x, чтобы выйти из файла, затем y, чтобы сохранить внесенные изменения. Чтобы подтвердить имя файла, нажмите ввод.
Перезагрузите конфигурацию systemd, после чего эти изменения вступят в силу:
Теперь запустите сервер MySQL:
Команда не покажет на экране никаких данных, но сервер БД запустится. Таблицы привилегий и сетевые соединения буду отключены.
Подключитесь к базе данных как пользователь root:
Вы попадете в командную строку БД сразу, без ввода пароля.
Теперь все готово, вы можете изменить свой утерянный пароль.
Шаг 1 — Определяем версию системы управления базой данных
Найдите, в какой папке у вас расположен файл mysqld.exe. При установке по данной инструкции, этот файл расположен в папке C:\Server\bin\mysql-8.0\bin\.
Откройте командную строку. Нам понадобятся права администратора, поэтому делаем следующее: нажмите Win+x и там выберите Windows PowerShell (администратор):
Теперь перейдите в командной строке в директорию с файлом mysqld.exe, для этого используйте команду вида:
cd путь\до\папки
Например, у меня это папка C:\Server\bin\mysql-8.0\bin\, тогда команда такая:
cd C:\Server\bin\mysql-8.0\bin\
Нужно определить версию MySQL/MariaDB, для этого выполните команду:
.\mysql --version
Пример вывода:
C:\Server\bin\mysql-8.0\bin\mysqld.exe Ver 8.0.19 for Win64 on x86_64 (MySQL Community Server - GPL)
Однопользовательский режим
Про однопользовательский режим вы можете прочитать . Его особенность в том, что невозможно выполнить вход под каким-либо пользователем, кроме как root. Но зато не нужно вводить пароль для root — по этой причине данный режим обычно используется для восстановления забытого пароля администратора, но может использоваться и для других целей восстановления и обслуживания системы.
Чтобы прервать загрузку GRUB (первый шаг) во время запуска компьютера нажмите и удерживайте клавишу SHIFT – это работает всегда, даже на Linux Mint, где по умолчанию показ меню GRUB отключён.
Остановите загрузку удерживая клавишу SHIFT при запуске компьютера, вы увидите:
Нажмите клавишу «e» и вы перейдёте к редактированию настроек загрузки:
На экране отсутствует нужная нам строка, пролистните курсорными клавишами вниз и найдите строку, начинающуюся с linux:
Перейдите в конец этой строки, поставьте пробел и допишите:
single init=/bin/bash
Должно получиться примерно так (номер ядра может отличаться):
Когда всё готово нажмите Ctrl+x или F10, чтобы загрузка продолжилась с установленными опциями.
Вы увидите приглашение оболочки, также обратите внимание, что мы вошли как root, т.е. у нас имеются повышенные привилегии, в том числе на использование команды passwd:
Перемонтируем файловую систему в режим чтения и записи:
mount -rw -o remount /
Для выхода наберите:
sync umount /
и затем отключите питание компьютера/перезагрузите физической кнопкой.
После перезагрузки вы автоматически вернётесь в графический рабочий стол.
Как поменять пароль root в MySQL
Если пароль root ИЗВЕСТЕН
Возьмем самую простую ситуацию, когда пароль от учетной записи root вам известен и все что нужно сделать, это просто его поменять. Чтобы задать новый пароль для учетной записи root, необходимо проделать следующие действия:
1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):
2) Меняем пароль для пользователя root:
Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )
Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )
NEW_PASSWORD – это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
3) Перезагружаем привилегии, чтобы изменения вступили в силу:
4) Для выхода из консоли MySQL сервера выполняем команду выхода:
После этого, пароль должен поменяться.
Если пароль root НЕ ИЗВЕСТЕН
Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:
1) Останавливаем mysqld:
2) Проверяем, что нет запущенных процессов mysqld:
Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:
3) Создаем каталог /var/run/mysqld для запуска mysqld в safe режиме из консоли
4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)
5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция –skip-grant-tables). А также отключаем доступ к серверу через TCP/IP (с помощью опци и –skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.
В случае успешного запуска, вывод в консоли должен быть примерно таким:
6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:
7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded», а нам это не нужно:
Вывод в результате выполнения данной команды должен быть примерно таким:
Перезагружаем привилегии:
9) Меняем пароль для нужного пользователя, в нашем случае это root:
Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )
Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )
NEW_PASSWORD – это пароль, который вам необходимо поменять на свой собственный. В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
В том случае, если указанные выше команды по какой то причине не сработали, вы можете воспользоваться следующим запросом:
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:
9) После чего, вводим команду exit для отключения:
10) Выключаем запущенный в ручном режиме Mysqld сервер:
Если все пройдет успешно, то вывод должен быть примерно таким:
То можно принудительно завершить процесс с помощью следующей команды:
11) Проверяем, что нет запущенных процессов mysqld:
12) Запускаем Mysql-server в нормальном режиме:
И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.
Шаг 4 — Смена пароля рута
Теперь вы можете подключиться к базе данных как пользователь рут, у которого не спросят пароль.
Открываем новое окно командной строки, можно без прав администратора.
Опять переходим в нужную папку
cd C:\Server\bin\mysql-8.0\bin\
И подключаемся к серверу MySQL/MariaDB
.\mysql -u root
Вы сразу же увидите приглашение оболочки базы данных. Приглашение командной строки MySQL:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.19 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.
Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены. Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду:
FLUSH PRIVILEGES;
Теперь действительно мы можем поменять пароль рута.
Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('новый_пароль');
Не забудьте поменять новый_пароль на выбранный вами новый пароль.
Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее вместо этой вы можете попробовать UPDATE … SET для сброса root пароля:
UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';
После этого не забудьте перегрузить таблицы привилегий:
FLUSH PRIVILEGES;
В любом случае вы должны видеть подтверждение, что команда успешно выполнена. Вывод:
Query OK, 0 rows affected (0.02 sec)
Выходим из сессии:
exit;
Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.