Изменить пароль root mysql сервера

Содержание
  1. Общая информация
  2. Требования для сброса пароля
  3. План сброса
  4. Определение версии MySQL
  5. Остановка сервера
  6. Отключение привилегий MySQL сервера
  7. Изменение пароля root пользователя MySQL
  8. Изменение пароля для MySQL 5.7.6 и новее
  9. Изменения пароля на MySQL 5.7.5 и позднее
  10. Завершение
  11. Восстановление привилегий и запуск сервера MySQL
  12. Проверка нового пароля
  13. Как изменить пароль пользователя на новых версиях MySQL
  14. Смена пароля, если текущий пароль утерян
  15. Смена пароля, если текущий пароль известен или не был установлен ранее
  16. Сброс пароля с помощью init-file
  17. Сброс пароля с помощью skip-grant-tables
  18. Выводы
  19. Об авторе
  20. Шаг 1. Как узнать версию MySQL
  21. Шаг 2. Вход в консоль MySQL
  22. Шаг 3. Просмотрхостов пользователя
  23. Шаг 4. Смена пароля пользователя при помощи SET PASSWORD
  24. Шаг 5. Смена пароля пользователя при помощи ALTER USER
  25. Шаг 6. Сброскэша привилегий
  26. Шаг 7. Проверканового пароля
  27. Выводы
  28. Об авторе

Общая информация

Сбросить пароль root пользователю базы данных MySQL может потребоваться в случае, если потерян доступ к системе управления базами данных.

Требования для сброса пароля

  • Локальный доступ или подключение по SSH к серверу на Ubuntu Linux.
  • Предустановленная система СУБД MySQL с отсутствующим доступом.

План сброса

Определение версии MySQL

Стоит сразу определить установленную версию MySQL, поскольку на разных версиях программы, команды, в дальнейшем, могут отличаться.

Для определения версии MySQL в терминале достаточно ввести команду:

mysql --version

Должен появится похожий вывод:

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

Строку можно сохранить в текстовом документе, чтобы не забыть версию MySQL.

Остановка сервера

Для отключения привилегий нужно остановить сервер MySQL, введя в терминале команду:

sudo systemctl stop mysql

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

Отключение привилегий MySQL сервера

Для начала создаётся конфигурационный файл, который изменяет параметры запуска MySQL. Для этого нужно ввести в терминале команду:

sudo systemctl edit mysql

В созданный текстовой файл нужно внести следующие строки, которые ограничат загрузку Grant-таблиц и запретят выход в сеть (для обеспечения безопасности):

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Для сохранения изменений в файле нужно нажать «CTRL+X», потом «Y» и подтвердить изменения нажатием «Enter».

Для применения изменений в процессе загрузки MySQL, нужно обновить конфигурацию Systemd командой:

sudo systemctl daemon-reload

Остаётся запустить сервер MySQL с отключенными привилегиями. Для этого в терминале вводится команда:

sudo systemctl start mysql

Изменение пароля root пользователя MySQL

Таблицы привилегий отключены и ничего не мешает выполнить вход в консоль MySQL от имени root пользователя без авторизации.

Для выполнения входа в консоль MySQL нужно ввести команду:

sudo mysql -u root

Авторизация должна пройти без введения пароля.

Для того чтобы сменить пароль пользователя root, нужно загрузить Grant-таблицы, введя команду в терминал MySQL:

FLUSH PRIVILEGES;

Изменение пароля для MySQL 5.7.6 и новее

Смена пароля root пользователя в консоли MySQL выполняется последовательным введением следующих команд:

UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')

WHERE User = 'root';

FLUSH PRIVILEGES;

Вместо «MY_NEW_PASSWORD» вводится собственный пароль. Не стоит забывать о безопасности и ставить лёгкие пароли, так как это сыграет на руку злоумышленникам.

Дополнительно:  Не горят индикаторы на ноутбуке - Домострой

Изменения пароля на MySQL 5.7.5 и позднее

Нужно последовательно ввести следующие команды:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');

FLUSH PRIVILEGES;

В поле «MY_NEW_PASSWORD» вводится собственный пароль.

Завершение

В случае успеха, в обоих случаях, будет получен следующий вывод:

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Восстановление привилегий и запуск сервера MySQL

После изменения пароля необходимо восстановить параметры загрузки сервера MySQL, удалив конфигурацию Systemd. Для этого в терминале последовательно вводятся команды:

sudo systemctl revert mysql

sudo systemctl daemon-reload

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

sudo systemctl restart mysql

Проверка нового пароля

Проверить новый пароль можно, выполнив вход в консоль MySQL от имени root пользователя:

mysql -u root -p

Как изменить пароль пользователя на новых версиях MySQL

В последних выпусках MySQL была добавлена возможность входа без пароля, если системная учётная запись имеет root доступ.

Чтобы узнать пароль на новых версиях, достаточно в терминале ввести команду, которая запустит MySQL с правами администратора:

sudo mysql

При получении ошибки «access denied» стоит переходить к описанному выше способу – «Сброс пароля root».

Если доступ к консоли получен успешно получен, можно выполнить сброс пароля root в Ubuntu для MySQL, последовательно вводя следующие команды:

UPDATE mysql.user SET authentication_string = PASSWORD('new_password')

WHERE user = 'root';

В поле «new_password» вводится новый пароль для пользователя root.

Для применения изменений нужно перезагрузить таблицы привилегий следующей командой:

FLUSH PRIVILEGES;

В случае успеха будет получен следующий вывод:

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

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

Смена пароля, если текущий пароль утерян

  1. Подключитесь к серверу
  2. Остановите службу MySQL:
  1. , чтобы запустить службу без проверки прав доступа. Для этого:

3.1. Откройте файл в редакторе:

Должно получиться примерно так:

Mysqld

3.3. Сохраните изменения (в nano это выполняется комбинацией Ctrl O -> Enter -> Ctrl X, либо Ctrl X -> Y -> Enter).

service mysql restart
  1. Снова откройте файл

удалите добавленную строку. Сохраните изменения. 

  1. Подключитесь к MySQL как root без пароля:
  1. Выберите активную БД:
  1. Выйдите из mysql командой \q
  2. Перезапустите службу в обычном режиме:
  1. Теперь проверьте, что пароль успешно изменен, подключившись под root с новым паролем. Для этого выполните:
mysql -u root -p

После чего введите ваш новый пароль. 

Смена пароля, если текущий пароль известен или не был установлен ранее

Если требуется изменить существующий root-пароль для MySQL либо установить его в случае, когда он не был задан в принципе (это актуально, например, при автоматической установке LAMP при создании сервера — root-пароль MySQL при этом не задается), это можно сделать следующим образом:

  1. Подключитесь к серверу
  2. Перейдите к управлению MySQL:

Если пароль root не задан, используйте команду:

Если пароль существует, используйте команду:

mysql -u root -p

После чего введите текущий пароль.

  1. Выполните запрос ниже, заменив «пароль» на нужное вам значение:
  1. Выйдите из консоли MySQL командой \q.
  2. Проверьте изменения, подключившись с новым паролем. Выполните команду:
mysql -u root -p

После чего введите ваш новый пароль.

Дополнительно:  Why do extraneous roots occur?

Для доступа к базе данных MySQL или MariaDB нужно ввести имя пользователя и пароль. Во время установки автоматически создаётся учётная запись пользователя root. Это аналог суперпользователя в Linux для MySQL. Он может выполнять все действия со всеми базами данных, а также создавать и удалять других пользователей.

Обычно, пароль для него не устанавливается, и вы можете задать его вручную уже после завершения установки. Но если вы забыли пароль или он был установлен автоматически, но вы его не знаете, то вам может понадобится его сбросить. Это можно сделать несколькими способами. В этой статье мы разберём, как выполняется сброс пароля root MySQL.

В статье я буду использовать Ubuntu и MariaDB, но эта инструкция подойдёт и для других дистрибутивов. В командах с systemctl для Mariadb следует использовать mariadb, а для MySQL — mysql или mysqld.

Сброс пароля с помощью init-file

При запуске сервиса MySQL можно указать файл, из которого будут выполнены команды sql сразу после запуска. Адрес этого файла указывается опцией —init-file. Но сначала давайте создадим файл, который будет изменять файл нашего пользователя:

Изменить пароль root mysql сервера

Затем остановите сервис, если он запущен:

sudo systemctl stop mysql

sudo systemctl stop mariadb

Изменить пароль root mysql сервера

Теперь осталось выполнить наш файл:

Изменить пароль root mysql сервера

Подождите минуту, чтобы всё успело сработать как нужно, а затем остановите этот процесс. В консоли команда сообщит started as proccess и PID процесса, этот PID нам и нужен, чтобы его остановить. Например:

sudo kill -TERM 5356

Изменить пароль root mysql сервера

sudo systemctl start mariadb

mysql -u root -p

Сброс пароля с помощью skip-grant-tables

Кроме того, есть и другой способ сбросить пароль MySQL. Мы можем запустить сервис с параметром —skip-grant-tables. В этом режиме программа пропускает загрузку данных о пользователях и тогда вы можете авторизоваться без ввода пароля. Аналогично, сначала нужно остановить сервис:

sudo systemctl stop mariadb

Затем запустите mysql вручную с помощью такой команды:

Изменить пароль root mysql сервера

Войдите в консоль управления mysql:

mysql -u root

Изменить пароль root mysql сервера

Так как мы загрузились без таблиц привелегий пользователей, то эти таблицы необходимо подгрузить сейчас:

Изменить пароль root mysql сервера

Теперь можно сменить пароль для пользователя root:

Изменить пароль root mysql сервера

Затем закройте консоль клиента mysql:

Завершите запущенный вручную сервис, таким же образом как в предыдущем пункте:

sudo kill -TERM 5356

И запустите mysql в нормальном режиме:

sudo systemctl start mariadb

Дальше вы можете авторизоваться от имени суперпользователя по этому паролю:

sudo mysql -u root -p

Выводы

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Изменить пароль root mysql сервера

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.

Дополнительно:  Ноутбук Леново не видит Вай-Фай: почему не ищет сети и что делать?

В данной статье будет рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.

Шаг 1. Как узнать версию MySQL

На данный момент (Февраль 2022 года) MySQL поддерживает две основные версии. Первая это устаревшая, но все еще поддерживая версия 5.7 и последняя актуальная версия 8.0. Для того чтобы узнать используемую версию необходимо выполнить следующую команду в терминале:

H4SDuG5pDxZ0AAAAAElFTkSuQmCC

Шаг 2. Вход в консоль MySQL

mysql -u root -p

A72roOCCGBR7AAAAAElFTkSuQmCC

Далее программа запросит пароль. В целях безопасности пароль не отображается в терминале. После ввода пароля необходимо нажать на клавишу Enter. После этого отобразится интерфейс консольного клиента MySQL, где можно использовать SQL команды.

Шаг 3. Просмотр хостов пользователя

В MySQL у каждой учетной записи есть свой хост, к которому данная учетная запись привязана. Есть 3 основных типа хостов в MySQL: localhost, % и IP адрес/доменное имя.

Тип записи localhost означает что под учетной записью можно входить только локально без возможности удаленного подключения, символ % (процент) означает что использовать такую учетную запись можно с любых хостов (в том числе и удаленных), IP адрес/доменное имя означает что использовать учетную запись можно только на выбранном доменном имени/IP адресе. Для того чтобы узнать тип хоста учетной записи необходимо выполнить следующий SQL запрос:

l+rnrkS45vNSQAAAABJRU5ErkJggg==

Шаг 4. Смена пароля пользователя при помощи SET PASSWORD

Если требуется изменить пароль для пользователя root воспользуйтесь статьей Сброс пароля root в MySQL. Сменить пароль пользователя MySQL можно при помощи команды SET PASSWORD. Для того чтобы сменить пароль для пользователя alex с хостом % на somepassword666 выполните такую команду:

kD+vfAAAAAElFTkSuQmCC

Шаг 5. Смена пароля пользователя при помощи ALTER USER

wNa8MAqBJAOIQAAAABJRU5ErkJggg==

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

Шаг 6. Сброс кэша привилегий

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

XaqSQtT3osKqMmnomrat6pVVk93u24uirhLHuGeE7cMHEI0qdl0v8BT129kDTk1qwAAAAASUVORK5CYII=

Шаг 7. Проверка нового пароля

После того как пароль был изменен и кэш привилегий сброшен, необходимо проверить вход от имени пользователя чей пароль был изменен. Для этого необходимо выйти из оболочки MySQL выполнив команду exit:

gDDP6UZdeVHDwAAAABJRU5ErkJggg==

mysql -u alex -p

weCJjTkWjPssQAAAABJRU5ErkJggg==

Если после ввода пароля появилось приглашение к вводу MySQL, то это означает что пароль был успешно обновлен.

Выводы

Теперь вы знаете как выполняется смена пароля пользователя MySQL. Изменить пароль можно несколькими способами. Оба способа являются простыми и быстрыми. А каким способом предпочитаете пользоваться вы? Поделитесь об этом в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Изменить пароль root mysql сервера

Бывший системный администратор и DevOps инженер. Ныне работаю по направлению DevSecOps. Использую Linux более 5 лет. Помимо Linux интересую языком программирования Python, базами данных и языком SQL а также информационной безопасностью.

Оцените статью
Master Hi-technology
Добавить комментарий