Mysql linux восстановить пароль

Содержание
  1. Как сбросить пароль пользователя root в СУБД MySQL или MariaDB на ОС Ubuntu 20.04
  2. Шаг 1 – Определяем версию и останавливаем сервер базы данных.
  3. Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
  4. Настройка режима –skip-grant-tables для MariaDB
  5. Настройка режима –skip-grant-tables для MySQL
  6. Шаг 3 – Изменение пароля root
  7. Меняем пароль root для MariaDB
  8. Меняем пароль root для MySQL
  9. Шаг 4 – Запускаем сервер базы данных в штатном режиме.
  10. Сброс пароля root в MySQL на Ubuntu
  11. Требования для сброса пароля
  12. Сброс пароля root
  13. План сброса
  14. Определение версии MySQL
  15. Остановка сервера
  16. Отключение привилегий MySQL сервера
  17. Изменение пароля root пользователя MySQL
  18. Изменение пароля для MySQL 5.7.6 и новее
  19. Изменения пароля на MySQL 5.7.5 и позднее
  20. Завершение
  21. Восстановление привилегий и запуск сервера MySQL
  22. Проверка нового пароля
  23. Как изменить пароль пользователя на новых версиях MySQL
  24. MysqlPasswordReset
  25. How can I reset my MySQL password?
  26. Another way, purge
  27. The Easiest Method

Как сбросить пароль пользователя root в СУБД MySQL или MariaDB на ОС Ubuntu 20.04

В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так как его можно сбросить, если иметь доступ к серверу и учетную запись пользователя операционной системы с привилегиями root. Данное руководство было протестировано в операционной системе Ubuntu 20.04 на двух популярных СУБД – MySQL и MariaDB.

Важно: В версии Ubuntu 20.04 дефолтная конфигурация MySQL или MariaDB позволяет получить доступ к базе данных (с правами администратора) без ввода пароля, если мы устанавливаем соединение с сервером БД под пользователем root . В этом случае нам нет необходимости сбрасывать пароль. Чтобы проверить была ли конфигурация аутентификации по умолчанию изменена, вводим команду sudo mysql. Если получаем ошибку access denied, то прибегаем к действиям, указанным с статье.

Шаг 1 – Определяем версию и останавливаем сервер базы данных.

Необходимы различные действия для сброса root пароля в зависимости от того, какая СУБД у нас установлена – MySQL или MariaDB. Для того, чтобы определить, какой сервер базы данных установлен в системе вводим:

Если используется MariaDB, то в выводе получим следующее: (разумеется, версия БД может меняться)

MariaDB output
mysql Ver 15.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
MySQL output
mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Чтобы произвести сброс root-пароля в MySQL или MariaDB, нам необходимо остановить сервер базы данных.

Для MariaDB:

sudo systemctl stop mariadb
sudo systemctl stop mysql

После остановки базы данных производим ее перезапуск в безопасном режиме для сброса пароля root.

Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables

Запуск MySQL и MariaDB в режиме –skip-grant-tables позволяет подключиться к базе данных с правами root без пароля. Поскольку это уязвимый режим работы СУБД, рекомендуется запуск сервера БД в однопользовательском режиме .

Настройка режима –skip-grant-tables для MariaDB

Зададим переменную окружения MYSQLD_OPTS, используемую в MariaDB при запуске:

sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"
sudo systemctl start mariadb

Корректность запуска сервера смотрим командой:

sudo systemctl status mariadb

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

Читайте также:  Linux drivers intel hd 4600

Подключившись к консоли MariaDB, меняем пароль root, как показано в Шаге 3 далее.

Настройка режима –skip-grant-tables для MySQL

Чтобы запустить сервер MySQL в этом режиме, изменим конфигурацию systemd для MySQL, чтобы при запуске сервер запустился с дополнительными параметрами.

sudo systemctl edit mysql

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

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking

Нажимаем CTRL-X, чтобы выйти из файла, затем – Y, чтобы сохранить внесенные изменения. Перезагружаем systemd, чтобы перечитать изменения:

sudo systemctl daemon-reload
sudo systemctl start mysql

и подключаемся пользователем root:

Шаг 3 – Изменение пароля root

Поскольку СУБД запущена в режиме –skip-grant-tables, мы имеем возможность получить доступ к серверу баз данных без пароля, но не можем выполнять запросы на изменением данных. Чтобы установить пароль root , нам необходимо перезагрузить таблицы предоставления привилегий, выполнив инструкцию:

Теперь сброс пароля root в MySQL или MariaDB возможен .

Меняем пароль root для MariaDB

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

В строке ‘new_password’ указываем свой пароль.

Output
Query OK, 0 rows affected (0.001 sec)

Далее установим механизм аутентификации по умолчанию:

UPDATE mysql.user SET authentication_string = '' WHERE user = 'root';
UPDATE mysql.user SET plugin = '' WHERE user = 'root';

Пароль изменен. Выходим из консоли MariaDB и смотрим Шаг 4 для перезапуска сервера базы данных в штатном режиме.

Меняем пароль root для MySQL

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password';
Output
Query OK, 0 rows affected (0.01 sec)

Выходим из консоли MySQL и запускаем базу данных в нормальном режиме.

Шаг 4 – Запускаем сервер базы данных в штатном режиме.

Чтобы перезапустить сервер базы данных в штатном режиме, выполним следующие действия:

Для MariaDB

Удаляем переменную окружения MYSQLD_OPTS:

sudo systemctl unset-environment MYSQLD_OPTS

и перезапускаем сервер MariaDB:

sudo systemctl restart mariadb

Удаляем все изменения конфигурации демона systemd для MySQL:

sudo systemctl revert mysql

Вывод должен быть примерно таким:

Output
Removed /etc/systemd/system/mysql.service.d/override.conf.
emoved /etc/systemd/system/mysql.service.d.

Затем перезагружаем демон systemd:

sudo systemctl daemon-reload
sudo systemctl restart mysql

После этого база данных должна перейти в нормальное состояние. Пробуем подключится к серверу базы данных пользователем root с новым паролем:

Успех! Не забывайте пароли=)

Источник

Сброс пароля root в MySQL на Ubuntu

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

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

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

Сброс пароля root

План сброса

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

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

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

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

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

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

Читайте также:  Linux create user with no home directory

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

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

sudo systemctl stop mysql

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

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

Отключение привилегий СУБД – исключение из процесса загрузки Grant-таблиц, которые хранят данные для авторизации пользователей (пароли и логины). Это позволит выполнить вход в MySQL без авторизации и восстановить пароль root по умолчанию.

Для начала создаётся конфигурационный файл, который изменяет параметры запуска 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 нужно ввести команду:

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

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

Изменение пароля для 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

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

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

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

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

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

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

Читайте также:  Openvpn linux сервер настройка

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

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

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

Надежный хостинг для сайта. 14 дней — бесплатно!

Источник

MysqlPasswordReset

Are you looking at this page because you cannot access the mysql server installed on your pc/server when you were trying to see if it works well? Or do you receive error messages like the following? :

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

To resolve this problem ,a fast and always working way is the «Password Resetting» .

How can I reset my MySQL password?

IconsPage/warning.png

Following this procedure, you will disable access control on the MySQL server. All connexions will have a root access. It is a good thing to unplug your server from the network or at least disable remote access.

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = 'localhost' AND User = 'root';
USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = '%' AND User = 'root';

For either method, once have received a message indicating a successful query (one or more rows affected), flush privileges:

Then stop the mysqld process and relaunch it with the classical way:

sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start
  • web server apache
  • php
  • mysql server/mysql client installed
  • php_mysql support for apache

All packages can be found browsing synaptic.

Another way, purge

I also had some problems with mysql just not accepting my password. I tried the other way as well and it just ended up being difficult. I had not been able to use mysql so it was empty anyway. If this is also your case you may opt for the PURGE way. This removes every file related to mysql. Depending on your installation the packages might be diffrent, mysql-server in 6.10 is called mysql-server-5.0 as an example.

IconsPage/warning.png

USE THIS AS A LAST RESORT METHOD, YOU WILL LOSE ALL YOUR MYSQL DATA

sudo apt-get --purge remove mysql-server mysql-common mysql-client
sudo apt-get install mysql-server mysql-common mysql-client

In the next step be sure to chance the your-new-password with the password you want!

mysqladmin -u root password your-new-password sudo /etc/init.d/mysql restart

You should now be logged in as root. Make sure to notedown your password! Thanks to Illuvator for posting this method in the ubuntu forum.

The Easiest Method

sudo dpkg-reconfigure mysql-server-N.N

(where N.N is the MySql Server version)

MysqlPasswordReset (последним исправлял пользователь host81-133-151-14 2014-10-24 13:37:57)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Источник

Оцените статью
Adblock
detector