Как сбросить пароль root в mysql

Как поменять пароль 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», а нам это не нужно:

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

8) Перезагружаем привилегии:

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, не предоставляя действительного пароля. Чтобы включить этот режим, необходимо запретить базе данных загружать таблицы привилегий, в которых хранится информация о доступе пользователей. Поскольку такой режим представляет некоторую угрозу безопасности, рекомендуем также отключить сеть, чтобы другие клиенты не смогли подключиться к временно уязвимому серверу.

Процедура запуска сервера без загрузки таблиц привилегий в 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:

Вы попадете в командную строку БД сразу, без ввода пароля.

Теперь все готово, вы можете изменить свой утерянный пароль.

Step 5 — Restart the Database Server Normally

First, stop the instance of the database server that you started manually in Step 3. This command searches for the PID, or process ID, of MySQL or MariaDB process and sends to tell it to exit smoothly after performing clean-up operations. You can learn more in this Linux process management tutorial.

For MySQL, use:

For MariaDB, use:

Then, restart the service using .

For MySQL, use:

For MariaDB, use:

Now you can confirm that the new password has been applied correctly by running:

The command should now prompt for the newly assigned password. Enter it, and you should gain access to the database prompt as expected.

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

Определение версии 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 сервера

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

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

sudo systemctl edit mysql

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

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 -u root -p

Как сбросить забытый пароль MySQL

Если вы вдруг забыли (или не знали) пароль от MySQL в Kali Linux, то эта инструкция поможет вам сбросить (заменить на новый), но не узнать пароль рута. Если вас это устраивает, то в первом терминале наберите:

sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables

В другом терминале

mysql -u root mysql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';
FLUSH PRIVILEGES;
quit

Обратите внимание, что строку НОВЫЙ ПАРОЛЬ нужно заменить на тот пароль, который вы хотите установить для рута MySQL.

В первом терминале CTRL+C или в любом терминале:

sudo kill `sudo cat /var/run/mysqld/mysqld.pid`

А затем:

sudo systemctl start mysql

Всё, теперь у вашей MySQL новый пароль.

Кстати, этот метод прекрасно сработает на любом Linux, а не только на Kali Linux. Но нужно учитывать, что команды для запуска и остановки служб на разных Linux могут различаться. Приведённые здесь команды без изменения сработают для производных Debian (Mint, Ubuntu).

MacOS

Install brew package manager & install mysql via brew or download from official website.

brew updatebrew install mysql 

If you’d old mysql you can either upgrade with brew or reinstall completely.

brew outdatedbrew upgrade mysql

WARNING: Be sure to backup your databases before you proceed further. You may use mysqldump for individual database backup. For mac you can backup binary databases from following path although it’s not guarantee to work 100%.

/usr/local/var/mysql/

After backing up existing databases with the method you’d chosen, we can now safely remove old sql and install new one (those who will be using brew with prune, it’s obsolete now)

brew uninstall mysql brew cleanup brew updatebrew install mysql 

Now we can check our installation by brew service.

brew services list Name    Status  User Plistmysql   started user /Users/user/Library/LaunchAgents/hom....

Reset root password using mysqladmin(linux)

You can access mysqladmin command and reset the current password. Check the mysql process are running on CentOS, Fedora, Red Hat Enterprise Linux and run as root user, then we can reset with new password.

service mysql statussudo mysqladmin -u root password NEWPASSWORDservice mysql restart

If this case don’t work anymore in newer mysql please follow next session.

Reset with skip grant tables (linux)

Step1: you can simply stop mysql service & restart with skip grant parameter

sudo service mysql stopsudo service mysql start --skip-grant-tables & mysql -urootmysql>

Then you can reset your root password just like mac user (follow to Step2). Simply refresh privileges and alter user’s password in our case user is happened to be root.

Reset with skip grant tables (mac)

Step1: you can simply stop mysql service & restart with skip grant parameter

brew services stop mysql

Then we will skip the loading of grant table so as of MySQL 8.0.x, — skip-grant-tables automatically enables — skip-networking, which does not allow remote connections.

mysqld_safe --skip-grant-tables &

Step2: Now you will be in mysql command prompt or just type “mysql”. Linux user can start resume from this command.

$ mysqlWelcome to the MySQL monitor etc ...........mysql>mysql> USE mysql;Database changed

Step3: We will use mysql databases(meta database), it’s default database which store engine meta info, help, innodb records, proxy, plugins, master & slave records.

mysql> FLUSH PRIVILEGES;mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';

If we don’t flush the privileges mysql cli will prompt “MySQL server is running with the — skip-grant-tables option so it cannot execute this statement”. You won’t find such error after following above step, please remember to replace NEWPASSWORD with your desire password.

Step4: Finally you can restart(linux) or start MySQL and login with given password.

brew services restart mysql // Macservice mysql restart // Linuxmysql -u root -pEnter password: *******

Harden your MySQL server

sudo mysql_secure_installation

This will ask you root password & walk you through series of question start with validating a plugin called “validate_password” to strength your passwords & test your password policies. Then you may change your root password, afterwards it’s recommend to remove “anonymous user”, deny access from remote, remove testing databases & refresh all privileges. We are all done here, unless you can’t start the first step in that case you don’t have mysql root user password.

Причина возникновения ошибки 1045

Как ни банально, но единственная причина это неправильная комбинация пользователя и пароля

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

Синтаксически записывается как ‘имя пользователя’@’имя хоста’.

Таким образом, причина возникновения MySQL error 1045 — неправильная комбинация трех параметров: имени пользователя, хоста и пароля.

В качестве имени хоста могут выступать ip адреса, доменные имена, ключевые слова (например, localhost для обозначения локальной машины) и групповые символы (например, % для обозначения любого компьютера кроме локального). Подробный синтаксис смотрите в документации

Примеры.
1) Если вы не указали в явном виде имя хоста

GRANT ALL ON publications.* TO ‘ODBC’ IDENTIFIED BY ‘newpass’;
ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost’ (using password: YES)

2) Другой первопричиной ошибки mysql 1045 может быть неправильное использование кавычек.

CREATE USER ‘new_user@localhost’ IDENTIFIED BY ‘mypass’; — будет создан пользователь ‘new_user@localhost’@’%’

3) Неочевидный вариант. IP адрес 127.0.0.1 в имени хоста соответствует ключевому слову localhost. С одной стороны, root@localhost и ‘root’@’127.0.0.1’ это синонимы, с другой, можно создать двух пользователей с разными паролями. И при подключении будет выбран тот, который распологается в таблице привелегий (mysql.user) раньше.

4) Аккаунт с пустым именем пользователя трактуется сервером MySQL как анонимный, т.е. позволяет подключаться пользователю с произвольным именем или без указания имени.
Например, вы создали пользователя »@localhost с пустым паролем, чтобы каждый мог подключиться к базе. Однако, если при подключении вы укажите пароль отличный от пустого, то получите ошибку 1045. Как говорилось ранее, нужно совпадение трех параметров: имени пользователя, хоста и пароля, а пароль в данном случае не совпадает с тем, что в базе.

Шаг 4 — восстановить нормальные настройки сервера базы данных

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

Для MariaDB отключите ранее установленныйПеременные среды:

Затем используйтеПерезапускаем сервис:

Для MySQL удалите измененную конфигурацию systemd:

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

Затем перезагрузите конфигурацию systemd, чтобы изменения вступили в силу:

Наконец, перезапустите службу:

База данных перезагружена и восстановлена ​​до нормального состояния. ЧерезrootИдентификатор пользователя использует пароль для входа в систему, чтобы подтвердить, действителен ли новый пароль:

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

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

Самые современные дистрибутивы Linux поставляются с MySQL или MariaDB, последняя является полностью совместимой заменой MySQL. В зависимости от используемой СУБД и её версии, вам нужно использовать различные команды для восстановления пароля рута.

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

mysql --version

Для MySQL вы увидите что-то вроде:

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

Для MariaDB вывод будет примерно таким:

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

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

Шаг 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пароль.

Step 3 — Restarting the Database Server Without Permission Checking

If you run MySQL and MariaDB without loading information about user privileges, it will allow you to access the database command line with root privileges without providing a password. This will allow you to gain access to the database without knowing it.

To do this, you need to stop the database from loading the grant tables, which store user privilege information. Because this is a bit of a security risk, you should also skip networking as well to prevent other clients from connecting.

Start the database without loading the grant tables or enabling networking:

The ampersand at the end of this command will make this process run in the background so you can continue to use your terminal.

Now you can connect to the database as the root user, which should not ask for a password.

You’ll immediately see a database shell prompt instead.

MySQL prompt

MariaDB prompt

Now that you have root access, you can change the root password.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: