Забыл пароль от mysql root linux

Как сбросить пароль root для MySQL в среде Linux

Если пароль от сервера БД MySQL утерян/забыт/не передан предыдущим администратором, то есть штатная процедура сброса пароля root. Это в обязательном порядке потребует остановки сервера СУБД.

Итак, чтобы сбросить пароль в среде Linux потребуется следующий порядок действий:
1. Выполнить вход на сервер, где запущен сервер MySQL/MariaDB
2. Остановить процесс mysql
Для остановки процесса, в зависимости от дистрибутива потребуется узнать pid родительского процесса. Его можно узнать при помощи команды: ps aux | grep MySQL или найти файл «.pid» (обычно mysql.pid или mariadb.pid) в одном из наиболее часто используемых каталогов, в зависимости от типа linux дистрибутива:
/var/lib/mysql/
/var/run/mysqld/
/usr/local/mysql/data/
и далее выполнить команду:где

— это номер процесса, который записан в .pid файле

В современных дистрибутивах, например, в CentOS 7, остановить MySQL без выснения PID процесса, воспользовавшись командой:Либо3. Запустить сервер MySQL с параметром —skip-grant-tables, командой:4. подключиться к локальному серверу MySQL командой:5. Последовательно выполняем команды:

  • Явно указать БД с которой работаем,
  • Установить новый пароль для сервера MySql
  • Указать серверу заново выполнить загрузку таблицы привилегий
  • Отключиться от сервера

Где, MyNewPassword — новый пароль для учетной записи root
6. Останавливаем службу MySQL одним из способов, предложенных в пункте 2
7. Выполняем обычный запуск службы MySQL, например, так
или так
8. Если ошибок не возникло, штатное подключение к серверу с паролем от пользователя root будет успешным.

Описанная выше процедура одинаково подходит как для сервера MySql, так и для сервера MariaDB, с тем лишь исключением, что название сервисов может быть не mysql (mysqld), а mariadb.

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Как сбросить root пароль на MySQL?

Keep calm and reset your password

3 минуты чтения

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

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

К счастью, это легко сделать, и это руководство проведет вас через процесс восстановления или сброса пароля root в версии MySQL 8.0.

Согласно документации по MySQL, существует два способа сброса корневого пароля MySQL и в этой статье мы рассмотрим оба.

Читайте также:  Windows server максимальное количество пользователей

Сброс MySQL root пароля с использованием –init-file

Один из способов сброса пароля root — создать локальный файл, а затем запустить службу MySQL, используя параметр —init-file, как показано ниже:

Важно убедиться, что файл доступен для чтения пользователю mysql. В этот файл вставьте следующее и измените «new_password» на пароль, который вы хотите использовать:

Теперь убедитесь, что служба MySQL остановлена. Вы можете сделать следующее:

Далее запустите следующее:

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

После этого обязательно остановите сервер и запустите его как обычно.

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

Сброс MySQL root пароля с использованием –skip-grant-tables

Второй вариант — запустить службу MySQL с параметром —skip-grant-tables. Это менее безопасно, так как пока служба запускается таким образом, все пользователи могут подключаться без пароля.

Если сервер запущен —skip-grant-tables, опция для —skip-network активируется автоматически, поэтому удаленные подключения не будут доступны.

Сначала убедитесь, что служба MySQL остановлена.

Затем запустите службу с помощью следующей опции.

Теперь вы можете подключиться к серверу MySQL, просто используя:

Поскольку управление учетными записями отключается при запуске службы с параметром —skip-grant-tables, нам придется перезагрузить гранты. Таким образом, мы сможем изменить пароль позже:

Теперь вы можете выполнить следующий запрос, чтобы обновить пароль. Обязательно замените «new_password» реальным паролем, который вы хотите использовать.

Теперь остановите сервер MySQL и запустите его как обычно.

Теперь вы сможете подключиться с новым паролем:

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Сброс root-пароля MySQL или MariaDB в Ubuntu 18.04

Забыть пароль может каждый. Если это случилось с вашим root-паролем от базы данных MySQL или MariaDB, вы можете получить доступ к аккаунту и сбросить пароль, если у вас есть доступ к серверу и учетная запись пользователя с привилегиями sudo.

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

В этом мануале вы узнаете, как сбросить root пароль базы данных MySQL и MariaDB, установленных с помощью менеджера пакетов apt в Ubuntu 18.04. Процедура изменения пароля и конфигурация systemd по умолчанию в MySQL и MariaDB отличаются. Инструкции в этом мануале могут подойти и для других версий системы и БД, но они составлены и протестированы специально для Ubuntu 18.04 и стандартных пакетов этого дистрибутива.

Требования

Для работы вам понадобится:

  • Сервер Ubuntu 18.04, настроенный по этому мануалу.
  • Система управления базами данных MySQL или MariaDB. Инструкции по установке можно найти в мануале Установка MySQL в Ubuntu 18.04.

1: Определение версии и остановка сервера БД

Ubuntu 18.04 использует MySQL или MariaDB, популярный форк, полностью совместимый с MySQL. В зависимости от СУБД вам придется использовать разные команды для восстановления root пароля. На данном этапе важно определить, какой сервер баз данных вы используете.

Читайте также:  Android studio windows java

Введите такую команду:

Если на вашем сервере используется MariaDB, это будет указано в выводе команды вместе с версией:

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

Если у вас MySQL, вы увидите:

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

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

Чтобы изменить пароль root, вам необходимо остановить сервер базы данных. Если вы используете MariaDB, вы можете сделать это с помощью следующей команды:

sudo systemctl stop mariadb

Для MySQL введите:

sudo systemctl stop mysql

Остановив сервер БД, вы можете перезапустить его в безопасном режиме, чтобы сбросить root пароль.

2: Перезапуск сервера

Запуск MySQL и MariaDB без проверки привилегий позволяет получить доступ к командной строке базы данных с правами root без предоставления пароля. Для этого вам необходимо остановить загрузку таблиц привилегий БД, в которых хранятся данные о правах пользователя. Поскольку это немного опасно, вы также можете отключить сеть, чтобы другие клиенты не могли подключиться к временно уязвимому серверу.

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

Настройка MariaDB для запуска без привилегий

Чтобы запустить сервер MariaDB без привилегий, нужно использовать юнит-файл systemd для установки дополнительных параметров демонов сервера MariaDB.

Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, используемую MariaDB при запуске. Параметры -skip-grant-tables и -skip-network указывают, что MariaDB запускается без таблиц привилегий и сетевых функций:

sudo systemctl set-environment MYSQLD_OPTS=»—skip-grant-tables —skip-networking»

Теперь запустите MariaDB:

sudo systemctl start mariadb

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых переменных.

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

sudo systemctl status mariadb

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

sudo mysql -u root

Вы увидите командную строку оболочки MariaDB:

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>

Теперь переходите к разделу 3.

Настройка MySQL для запуска без привилегий

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

Для этого выполните следующую команду:

sudo systemctl edit mysql

Эта команда откроет новый файл в редакторе nano, который можно использовать для управления переопределений MySQL. Они изменяют параметры сервиса MySQL по умолчанию. Этот файл будет пустым, в него нужно вставить следующий контент:

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

Первый оператор ExecStart очищает значение по умолчанию, а второй предоставляет systemd новую команду запуска с параметрами для отключения загрузки таблиц привилегий и сетевых функций.

Нажмите CTRL-Х, чтобы выйти из файла, затем Y, чтобы сохранить изменения, и ENTER, чтобы подтвердить имя файла.

Перезагрузите конфигурацию systemd, чтобы применить эти изменения:

sudo systemctl daemon-reload

Запустите сервер MySQL:

sudo systemctl start mysql

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых конфигураций.

Теперь можно подключиться к БД как пользователь root без пароля:

sudo mysql -u root

Вы увидите командную строку оболочки MySQL:

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>

Читайте также:  Стабильная сборка windows 10 by lex

Теперь можно сбросить утраченный пароль.

3: Изменение root-пароля

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

Чтобы перезагрузить таблицы, введите команду FLUSH PRIVILEGES.

Теперь вы можете изменить root-пароль. Дальнейшие действия зависят от того, какую СУБД вы используете, MariaDB или MySQL.

Изменение пароля в MariaDB

Если вы используете MariaDB, выполните следующую команду, чтобы установить пароль учетной записи root. Вместо new_password укажите свой новый пароль, который вы запомните.

UPDATE mysql.user SET password = PASSWORD(‘new_password’) WHERE user = ‘root’;

Если пароль успешно изменен, вы увидите:

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

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

UPDATE mysql.user SET authentication_string = » WHERE user = ‘root’;
UPDATE mysql.user SET plugin = » WHERE user = ‘root’;

Вы увидите вывод:

Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0

Пароль изменен. Введите exit, чтобы выйти из консоли MariaDB и перейдите к разделу 4, чтобы перезапустить сервер базы данных в обычном режиме.

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

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

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

Если пароль успешно изменен, вы увидите:

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

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

UPDATE mysql.user SET plugin = ‘mysql_native_password’ WHERE user = ‘root’;

Вы увидите вывод:

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

Пароль изменен. Введите exit, чтобы выйти из консоли MySQL.

Теперь нужно перезапустить сервер базы данных в обычном режиме.

4: Перезапуск сервера БД в обычном режиме

Чтобы перезапустить сервер базы данных в обычном режиме, необходимо отменить сделанные в разделе 2 изменения – включить поддержку сети и восстановить загрузку таблиц привилегий. Опять же, команды в MariaDB или MySQL отличаются.

В MariaDB отключите переменную среды MYSQLD_OPTS, которую вы установили ранее:

sudo systemctl unset-environment MYSQLD_OPTS

Теперь перезапустите сервис с помощью systemctl:

sudo systemctl restart mariadb

В MySQL удалите измененные конфигурации systemd.

sudo systemctl revert mysql

Вы увидите такой вывод:

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

Обновите конфигурации systemd:

sudo systemctl daemon-reload

А затем перезапустите сервис:

sudo systemctl restart mysql

Теперь БД работает в нормальном режиме. Убедитесь, что новый пароль работает:

Команда должна запросить у вас пароль. Введите новый пароль, чтобы получить доступ к данным.

Заключение

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

Больше дополнительной информации об управлении пользователями, механизмах аутентификации или способах сброса пароля БД в других версиях СУБД можно найти в официальной документации MySQL и MariaDB.

Источник

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