Мы рассмотрим процесс сброса паролей на примере систем:
- Astra Linux, Ubuntu (Linux Deb).
- Rocky Linux, CentOS (Linux RPM).
- FreeBSD (BSD).
Для выполнения нижеописанных действий у нас должен быть либо физический доступ к компьютеру, либо возможность подключения к KVM-консоли/IPMI.
Astra Linux, Ubuntu
Rocky Linux, CentOS
FreeBSD
This guide will show you how to reset a forgotten root password. Several methods are listed to help you accomplish this.
Warning: An attacker could use some of the methods mentioned below to break into your system. No matter how secure the operating system is or how good passwords are, having physical access amounts to loading an alternate OS and exposing your data, unless you use data-at-rest encryption.
Если у вас Linux, то смотрите статью «Как сбросить пароль root для MySQL или MariaDB».
Пароль пользователя root спрашивается во время установки СУБД. Если установка делалась вручную, то есть без инстолятора, как это описано, например, в этой статье, то пароль может быть не установлен вовсе.
Если вы используете какие-то готовые сборки, которые включают в себя MySQL/MariaDB, то обратитесь за паролем на официальные сайты этих сборок. Также попробуйте такие учётные данные:
- Пользователь: root
- Пароль: root
Если вы действительно забыли пароль MySQL/MariaDB и вам нужно сбросить пароль root в MySQL на Windows, то данная статья расскажет, как это сделать.
Состояние перевода: На этой странице представлен перевод статьи Reset lost root password. Дата последней синхронизации: 13 октября 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
На этой странице вы сможете узнать, как сбросить забытый пароль суперпользователя. Существуют несколько способов, которые могут вам в этом помочь.
Важно: Недобросовестный пользователь может использовать указанные здесь методы для получения доступа к вашей системе. Неважно, насколько операционная система защищена от атак и как хороши ваши пароли: имея физический доступ к компьютеру, любой сможет это сделать, если вы, конечно, не выполните шифрование хранимых данных.
- Введение
- Lost Password?
- Шаг 4 – Запускаем сервер базы данных в штатном режиме.
- Using a LiveCD
- Remove the old MYSQL
- Using the debug shell
- The Standard Way
- Шаг 4 — Смена пароля рута
- Install MYSQL
- Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
- FreeBSD
- Шаг 1 — Определяем версию системы управления базой данных
- Шаг 2 — Остановка сервера базы данных
- Reset MySQL 8. 0 root Password in Windows
- The Other Way Lucid
- Через отладочную консоль
- The Other Way
- Rocky Linux / CentOS 7 / CentOS 8
- Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
- Настройка режима –skip-grant-tables для MariaDB
- Настройка режима –skip-grant-tables для MySQL
- Шаг 3 – Изменение пароля root
- Меняем пароль root для MariaDB
- Меняем пароль root для MySQL
- Astra Linux / Ubuntu
- Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
- При помощи LiveCD
- Шаг 5 — Обычный перезапуск сервера базы данных
- Шаг 1 – Определяем версию и останавливаем сервер базы данных.
- Используя bash в качестве init
- Using bash as init
- Заключение
Введение

В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль root от MySQL или MariaDB. Отчаиваться не стоит, так как его можно сбросить, если иметь доступ к серверу и учетную запись пользователя операционной системы с привилегиями root. Данное руководство было протестировано в операционной системе Ubuntu 20.04 на двух популярных СУБД – MySQL и MariaDB.
Важно: В версии Ubuntu 20.04 дефолтная конфигурация MySQL или MariaDB позволяет получить доступ к базе данных (с правами администратора) без ввода пароля, если мы устанавливаем соединение с сервером БД под пользователем root . В этом случае нам нет необходимости сбрасывать пароль. Чтобы проверить была ли конфигурация аутентификации по умолчанию изменена, вводим команду sudo mysql. Если получаем ошибку access denied, то прибегаем к действиям, указанным с статье.
At first run this command:
sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
now you can see something like this already :
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Be sure to change password to a strong password of your choosing.
Then for reload your server to put your new changes into effect run this;
FLUSH PRIVILEGES;
So again check the authentication methods which has employed by your mysql , by this command:
SELECT user,authentication_string,plugin,host FROM mysql.user;
and now the output is :
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
as you can see in the grant table your root account has mysql_native_password
.
now you can exit MYSQL shell
exit;
That’s it.just you should restart mysql by sudo service mysql restart
.
Now you can login to mysql as a root account with your password easily.
Step # 1: Stop the MySQL server process.
Step # 2: Start the MySQL (mysqld) server/daemon process with the
—skip-grant-tables option so that it will not prompt for a password.
that we can found on these website : https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords#recover-mysql-root-password
mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("TOOR");
mysql> flush privileges;
mysql> quit
First error, so I tried :
mysql> use mysql;
mysql> update user set password=PASSWORD("TOOR") where User='root';
mysql> flush privileges;
mysql> quit
Always the same error said :
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '("TOO
R") WHERE User='root'' at line 1
How can I resolve this?
asked Jun 5, 2018 at 4:20
Mangue SutcliffMangue Sutcliff
1 gold badge12 silver badges16 bronze badges
as here says:
This function was removed in MySQL 8.0.11
1.if you in skip-grant-tables mode
in mysqld_safe:
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;
and then, in terminal:
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
2.not in skip-grant-tables mode
just in mysql:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
answered Sep 30, 2018 at 16:29
Jack Chern
1 gold badge7 silver badges4 bronze badges
Jus login to mysql with sudo
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
exit;
mysql -u root -p
8 gold badges43 silver badges68 bronze badges
answered Jun 13, 2020 at 8:06
Mahdi Raad
5 silver badges3 bronze badges
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPasswd';
answered Jul 5, 2018 at 8:29
Если вы забыли пароль root для базы данных MySQL или хотите его поменять в целях безопасности, нужно выполнить сброс пароля. В статье расскажем, как это сделать с помощью командной строки Windows.
1.Остановите сервер MySQL
- Проверьте, вошли ли вы в систему как администратор.
- Нажмите Win + R. Когда откроется окно «Выполнить», введите:
- Нажмите ОК.
- В списке служб найдите MySQL. Кликните правой кнопкой мыши по ней, после чего левой кликните Stop.
2. Измените пароль в текстовом редакторе
- В меню найдите «Блокнот», либо используйте путь: Меню > Стандартные Windows > Блокнот.
- Создайте новый текстовый документ с помощью команды пароля
- В текстовом редакторе введите строку:
- Проверьте, на месте ли кавычки и точка с запятой. Замените NewPassword своим новым паролем. «Файл» > «Сохранить как», чтобы сохранить файл в корень жесткого диска (C:\). Придумайте осмысленное имя файлу.
Команда localhost изменит пароль в вашей локальной системе. Если вы пытаетесь изменить пароль по сети, замените текущее имя хоста на localhost.
3. Запустите cmd
- Откройте командную строку и нажмите Ctrl+Shift+Esc.
- В меню выберите «Файл» > «Запустить новую задачу».
- Введите cmd.exe и установите флажок для запуска от имени администратора.
- Нажмите ОК.
Бесплатный тестовый доступ к облаку на 30 днейПолучить
4. Перезапустите сервер MySQL с обновлённым файлом конфигурации.
Чтобы перейти в каталог MySQL используйте командную строку:
cd «C:\Program Files\MySQL\MySQL Server 8.0\bin»
Вместо ИМЯ_ФАЙЛА вы вводите своё название, которое использовали в пункте 2.
5. Теперь можете зайти на свой сервер MySQL как root, введя новый пароль.
- Повторите вход с новым паролем, чтобы убедиться, что всё работает. Если у вас есть уникальные параметры конфигурации (например, запуск MySQL с параметром -defaults-file ), делайте всё, что нужно.
- После запуска MySQL и подтверждения смены пароля удалите файл C:\ИМЯ_ФАЙЛА.txt .
Вот и всё, вы благополучно сбросили пароль root для базы данных MySQL.
# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO)
I have search a little on the net before, and even the technic:
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
does not work, or I didn’t understood how it worked.
Thank you in advance for your answers.
80 gold badges520 silver badges500 bronze badges
asked Nov 23, 2010 at 16:11
sudo stop mysql
sudo mysqld --skip-grant-tables --skip-networking
mysql
mysql> update mysql.user set password = password('your_new_password') where user = 'root';
mysql> flush privileges;
mysql> exit;
sudo mysqladmin shutdown
sudo start mysql
answered Jun 19, 2011 at 10:57
5 gold badges64 silver badges76 bronze badges
For mysql 5.7.16 or later I found this (from mysql.com) to be the working solution. Below are some points which are different compared to previous older versions
1) I used the below command to run mysql in safe mode as per some other references which actually worked fine for me (mysql 5.7.16 ubuntu 16.04).
mysqld_safe --skip-grant-tables --skip-networking
2) The below update stmt is NOT working for later version (ie. 5.7 and above)
-- NOT Working for 5.7 and later
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;
INSTEAD use below for 5.7.6 and later
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
answered Oct 29, 2016 at 21:40
6 silver badges18 bronze badges
I am Using MySQL Server 8 and this is how I solved this problem.
create a file and name it accordingly. I’ve named it as reset.txt. put below content in the file but change MyNewPass. This will be your new SQL password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Stop my SQL server (Go to services and search MYSQL and right-click on it and stop )
Now open a cmd in your bin folder of My SQLserver directory. in my case it’s
C:\Program Files\MySQL\MySQL Server 8.0\bin
mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\reset.txt'
NOTE: my reset.txt file is in the c drive. Give the correct path. Check my.ini file is in the directory. In my case, it is in
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
Finally, restart the SQL Server. Check with your new password.
answered Feb 10, 2020 at 11:54
Resetting MySql Password
You have to stop MySql service before you proceed.In Windows environment, go to ‘Task Manager’ and Under ‘Service’ tab find MySQL and stop it.
Write Sql to change your password
Now it’s time to restart your MySQl which you stopped in before but this time from command line. C:> C:\mysql\bin\mysqld-nt —init-file=C:\mysql-init.txt
Finishing up!
Now you can log in with your new password. When you finish remove the file that you created in the previous stage.
Also there is a link (http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password) where I have explained the same thing.
Hope this will help..:)
answered Nov 4, 2013 at 11:39
7 gold badges65 silver badges47 bronze badges
Answer for XAMPP on Windows:
- Edit C:\xampp\mysql\bin\my.ini and insert skip-grant-tables below [mysqld]
- Restart MySQL from Control Panel interface
- In the phpMyAdmin window, select SQL tab from the top panel. This will open the SQL tab where we can run the SQL queries. Now type the following query in the text area and click Go
- Remove the skip-grant-tables in the my.ini file
- Restart MySQL from Control Panel interface
answered May 9, 2017 at 19:11
9 gold badges57 silver badges54 bronze badges
answered May 1, 2018 at 14:41
19 silver badges57 bronze badges
in my case its a frustrating Windows Server installation (iis/php/mysql) so this is what i did:
Lost Password?
Sometimes it is necessary to get root access, for example when you have forgotten your password or changed something in /etc/sudoers and things do not work as expected.
Be careful, because this step will give you full root access to your system and you can really damage your system! Keep in mind that all the steps you see here can also be done by someone else!
Now let us start with a way that should work on any freshly installed Ubuntu system:
Шаг 4 – Запускаем сервер базы данных в штатном режиме.
Чтобы перезапустить сервер базы данных в штатном режиме, выполним следующие действия:
Удаляем переменную окружения 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
и сервер MySQL:
sudo systemctl restart mysql
После этого база данных должна перейти в нормальное состояние. Пробуем подключится к серверу базы данных пользователем root с новым паролем:
mysql -u root -p
Успех! Не забывайте пароли=)
Using a LiveCD
With a LiveCD a couple methods are available: change root and use the passwd
command, or erase the password field entry directly editing the password file. Any Linux capable LiveCD can be used, albeit to change root it must match your installed architecture type. Here we only describe how to reset your password with chroot, since manual editing the password file is significantly more risky.
- Boot the LiveCD and mount the root partition of your main system.
- Use the
passwd --root MOUNT_POINT USER_NAME
command to set the new password (you will not be prompted for an old one). - Unmount the root partition.
- Reboot, and enter your new password.
Remove the old MYSQL
NOTE: if you already have data you should back it up!
Step 1
Uninstall MySQL from Control Panel. (you should know how to do this)
Net stop MySQL
Sc delete MySQL
Step 3
Delete these folders:
C:\Program Files\MySQL
C:\Program Files (x86)\MySQL
C:\ProgramData\MySQL
And if it exists:
C:\Users\[User-Name]\AppData\Roaming\MySQL
Using the debug shell
- Append
systemd.debug_shell
to the kernel parameters. - This will do a normal boot but start
debug-shell.service
which runs a root shell (/bin/sh
) ontty9
. PressCtrl+Alt+F9
to access it. - Use the passwd command to create a new password for the root user.
- When done, stop
debug-shell.service
.
Если у вас есть установленный sudo и настроен доступ для группы wheel
или для пользователя, чей пароль вы помните, вы можете сменить пароль root с помощью команды sudo passwd root
.
The Standard Way
This procedure gives you a full root shell! You can damage your system if you are not careful!
When booting up press SHIFT (in systems 9.10 «karmic» or later) or ESC (in systems 9.04 «jaunty» or earlier) at the grub prompt and use the arrow keys to select the rescue mode option and press enter.
- The file system may be read only (it is in all currently supported releases). Remount as read write
mount -rw -o remount /
- This will boot the system in rescue mode and you should arrive at a prompt that looks like this
root@something
- To reset your password type this in
passwd <username>
Press return, then you will be prompted to enter and confirm a new password.
- Once you are done resetting your password you can than switch back to the normal GUI mode by putting this in
init 2
If if appears to boot normally, but you see a message that says:
- Give root password for maintenance (or type Control-D to continue):
then you will have to try a different trick below.
Шаг 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.
Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.
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('новый_пароль');
Не забудьте поменять новый_пароль на выбранный вами новый пароль.
UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';
После этого не забудьте перегрузить таблицы привилегий:
FLUSH PRIVILEGES;
В любом случае вы должны видеть подтверждение, что команда успешно выполнена. Вывод:
Query OK, 0 rows affected (0.02 sec)
Выходим из сессии:
exit;
Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.
Install MYSQL
Download installer from https://dev.mysql.com/downloads/installer/ and install
-MySQL Server 8.0.23
mysqld --initialize --console
mysqld --install
now start the service (type services.msc in run panel)
now back to console run:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
answered Feb 14, 2021 at 6:13
4 silver badges7 bronze badges
update user SET authentication_string='your password after encode to sha256' where User='root';
1 gold badge14 silver badges25 bronze badges
answered Feb 28, 2022 at 11:01
Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
Если вы запускаете MySQL и MariaDB без загрузки информации о привилегиях пользователя, она позволит вам без ввода пароля получить доступ к командной строке базы данных с привилегиями рута. Это позволит вам получить доступ к базе данных без знания парольной фразы. Чтобы это сделать, вам нужно не дать базе данных загрузить таблицы привилегий, которые содержат информацию о привилегиях пользователя. Поскольку это несёт риск безопасности, вы также должны избежать сетевой активности, чтобы не допустить подключения других клиентов.
Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:
.\mysqld --skip-grant-tables --skip-networking --shared-memory
Программа НЕ должна завершить работу, то есть теперь в это окно командной строки ничего нельзя ввести.
FreeBSD
Перезагружаем компьютер до окна выбора вариантов загрузки:
* данное окно в разных версиях FreeBSD может различаться.
Система загрузится в однопользовательском режиме. В нем у нас будет смонтированный корневой раздел в режиме только для чтения. Вводим команду, чтобы это исправить:
mount -u /
Вводим команду для смены пароля:
После этого дважды пароль (при вводе не будут отображаться символы):
New Password:
Retype New Password:
Выходим из однопользовательского режима:
Система загрузится в обычном режиме. Можно авторизовываться с новым паролем.
Была ли полезна вам эта инструкция?
Шаг 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)
Шаг 2 — Остановка сервера базы данных
Для изменения пароля root вы должны заранее отключить сервер базы данных. Для MySQL и MariaDB вы можете сделать это командой:
net stop mysql
После того, как сервер остановлен, вы вручную получите к нему доступ для сброса пароля рута.
Reset MySQL 8. 0 root Password in Windows
- Stop the
MySQL 8.0
service from services - Go to path C:\Program Files\MySQL\MySQL Server 8.0\bin and open
cmd
- Run
mysqld --console --skip-grant-tables --shared-memory
- Open new
cmd
in the same path - Run following commands
mysql -u root
select authentication_string,host from mysql.user where user='root';
UPDATE mysql.user SET authentication_string='' WHERE user='root';
- Now close both the
cmd
. - Try to start the MySQL 8.0 service.
- Connect using username as root & password as blank.
- Change the password from the user management.
Found this at https://gist.github.com/pishangujeniya/0f839d11a7e692dadc49821c274a2394
answered Jun 14, 2021 at 6:08
mysql --init-file=C:/init.sql
Step 5: Execute this command and you are good to go 🙂
answered Nov 12, 2019 at 10:27
6 bronze badges
- following steps outlined by others had various failures
- user running daemon is mysql and I cannot su to mysql id
- getting error can’t create lock file /var/run/mysqld/mysqlx.sock.lock , mysqld folder is getting deleted by the mysql service.
- had to kill -9 mysql process after running, very ugly
- use steps from https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
- use —user=mysql when running mysql commands
- Create folder /var/run/mysqld and chown for mysql:mysql before runing comamnds
- use mysqladmin shutdown to stop sql after starting it for reset
In the script, I will reset root to New%Password
# create password reset file
cat << EOF >/tmp/deleteme
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'New%Password';
EOF
# create /var/run/mysqld
mkdir /var/run/mysqld
chown mysql:mysql /var/run/mysqld
# start mysqld and run the command
mysqld --init-file=/tmp/deleteme --user=mysql &
# wait for sql to start
while [ ! -f /var/run/mysqld/mysqlx.sock.lock ]; do sleep 1; done
sleep 3
# stop sql
mysqladmin -u root -pNew%Password shutdown
while [ -f /var/run/mysqld/mysqlx.sock.lock ]; do sleep 1; done
#clean up temp file
rm /tmp/deleteme
answered Apr 14, 2021 at 22:17
Using SQLYog you can execute commands
CREATE USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d'
GRANT ALL PRIVILEGES ON sakila.* TO 'tester'@'localhost'
Changing Password in MySQL 8.0
ALTER USER 'tester'@'localhost' IDENTIFIED BY 'Pass123#d';
or if u know the authentication_string directly set it to update
UPDATE mysql.user SET authentication_string='*F9B62579F38BE95639ACB009D79427F2D617158F' WHERE USER='root'
Changing password in lower versions of mysql
GRANT USAGE ON *.\* TO 'tester'@'localhost' IDENTIFIED BY 'Pass123#d' SET PASSWORD FOR 'tester'@'localhost' = PASSWORD('Pass123#d');
answered May 8, 2019 at 11:05
The Other Way Lucid
At least for ‘Lucid’ I found out that the steps 1-5 in the procedure mentioned above are slightly different:
1. Reboot your computer
2. Hold shift during boot to start GRUB menu
3. Highlight your image and press ‘e’ to edit
4. Find the line starting with linux and append init=/bin/bash at the end of that line
5. Press ctrl-x to boot.
Через отладочную консоль
- Добавьте параметр ядра
systemd.debug_shell
. - Система загрузится как обычно, но запустит службу
debug-shell.service
, которая запустит командный интерпретатор (/bin/sh
) на консолиtty9
. НажмитеCtrl+Alt+F9
чтобы перейти в неё. - Используйте команду passwd для установки нового пароля суперпользователя.
- После завершения остановите
debug-shell.service
.
The Other Way
1. Reboot your computer
2. Press SHIFT or ESC at the grub prompt (as earlier).
3. Select your image.
4. Highlight the line that begins kernel and press ‘e’ to edit
5. Go to the very end of the line, change the ro to rw and add init=/bin/bash
press enter, then press b to boot your system.
Your system will boot up to a passwordless root shell.
7. Set your password.
8. Type in reboot
Rocky Linux / CentOS 7 / CentOS 8
Во время загрузки системы дожидаемся окна с возможностью выбора варианта загрузки:
Наводим на нужную версию ядра, если их несколько (как правило, нужная нам находится в самом верху) и нажимаем клавишу e.
Мы должны увидеть редактор для правки сценария загрузки. Находим строку, которая начинается с:
Редактируем в данной строке ro на rw и в конец дописываем rd.break enforcing=0:
Нажимаем Ctrl + X — система загрузится в режиме восстановления.
Зайдем в оболочку с другим корнем:
Меняем пароль для пользователя root:
Система попросит дважды ввести пароль:
New Password:
Retype New Password:
После выходим из окружения chroot:
И грузим нашу систему в обычном режиме:
Входим в систему с использованием нового пароля.
Шаг 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 без пароля:
sudo mysql -u root
Подключившись к консоли 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
Запускаем сервер MySQL:
sudo systemctl start mysql
и подключаемся пользователем root:
sudo mysql -u root
Далее переходим к Шагу 3.
Шаг 3 – Изменение пароля root
Поскольку СУБД запущена в режиме –skip-grant-tables, мы имеем возможность получить доступ к серверу баз данных без пароля, но не можем выполнять запросы на изменением данных. Чтобы установить пароль root , нам необходимо перезагрузить таблицы предоставления привилегий, выполнив инструкцию:
FLUSH PRIVILEGES;
Теперь сброс пароля 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 и запускаем базу данных в нормальном режиме.
Astra Linux / Ubuntu
При старте системы дожидаемся окна выбора варианта загрузки (GNU GRUB):
Если данное окно не появляется и начинает загружаться система, после первого загрузочного окна нажимаем Shift.
Остаемся на пункте Ubuntu и нажимаем клавишу e — откроется редактор со сценарием загрузки. Находим в нем строку, которая начинается с:
Удаляем ro и в конце строки допишем:
Можно запускать загрузку системы. Нажимаем F10 или Ctrl + X. Мы должны увидеть командную строку с возможностью вводит команды.
И дважды пароль, который хотим использовать (при вводе не будут отображаться символы):
New Password:
Retype New Password:
Запускаем системы в обычном режиме:
Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
Если при запуске mysqld вы столкнулись со следующей ошибкой:
[ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS
При помощи LiveCD
- Загрузитесь с LiveCD и смонтируйте корневой раздел вашей основной системы.
- Используйте команду
passwd --root ТОЧКА_МОНТИРОВАНИЯ ИМЯ_ПОЛЬЗОВАТЕЛЯ
для установки нового пароля (старый пароль запрошен не будет). - Размонтируйте корневой раздел.
- Перезагрузитесь и введите новый пароль.
Шаг 5 — Обычный перезапуск сервера базы данных
Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Для этого перейдите в окно с запущенной mysqld и нажмите Ctrl+c.
Затем перезапустите сервис обычным образом:
net start mysql
Теперь вы можете подтвердить, что новый пароль работает, запустите:
.\mysql -u root -p
Эта команда должна вызвать приглашение в который нужно ввести новый пароль. Введите его, вы должны получить доступ к интерфейсу командной строки базы данных, как это обычно и происходит.
Шаг 1 – Определяем версию и останавливаем сервер базы данных.
Необходимы различные действия для сброса root пароля в зависимости от того, какая СУБД у нас установлена – MySQL или MariaDB. Для того, чтобы определить, какой сервер базы данных установлен в системе вводим:
mysql --version
Если используется 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, нам необходимо остановить сервер базы данных.
sudo systemctl stop mariadb
sudo systemctl stop mysql
После остановки базы данных производим ее перезапуск в безопасном режиме для сброса пароля root.
Используя bash в качестве init
- Добавьте параметр ядра
init=/bin/bash
в настройках вашего загрузчика. - Сейчас ваша корневая файловая система смонтирована только для чтения, поэтому перемонтируйте ее на чтение-запись командой
mount -n -o remount,rw /
. - Используйте команду passwd для установки нового пароля суперпользователя.
- Перезагрузитесь с помощью команды
reboot -f
и не забудьте свой пароль снова!
Примечание: Некоторые клавиатуры не распознаются должным образом при загрузке bash из GRUB, и вы не сможете ничего ввести в консоли. В этом случае вам остается лишь использовать другой способ.
Using bash as init
- Append the
init=/bin/bash
kernel parameter to your boot loader’s boot entry. - Your root file system is mounted as read-only now, so remount it as read/write:
mount -n -o remount,rw /
. - Use the passwd command to create a new password for the root user.
- Reboot by typing
reboot -f
and do not lose your password again!
Note: Some keyboards may not be loaded properly by the init system with this method and you will not be able to type anything at the bash prompt. If this is the case, you will have to use another method.
Заключение
Теперь вы восстановили административный доступ к серверу MySQL или MariaDB. Убедитесь, что новый пароль рута, который вы выбрали, безопасный и храните его в надёжном месте.