How to reset the root password in MySQL 8.0.11?

How to reset the root password in MySQL 8.0.11? Техника

Мы рассмотрим процесс сброса паролей на примере систем:

  • 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. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

На этой странице вы сможете узнать, как сбросить забытый пароль суперпользователя. Существуют несколько способов, которые могут вам в этом помочь.

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

Содержание
  1. Введение
  2. Lost Password?
  3. Шаг 4 – Запускаем сервер базы данных в штатном режиме.
  4. Using a LiveCD
  5. Remove the old MYSQL
  6. Using the debug shell
  7. The Standard Way
  8. Шаг 4 — Смена пароля рута
  9. Install MYSQL
  10. Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
  11. FreeBSD
  12. Шаг 1 — Определяем версию системы управления базой данных
  13. Шаг 2 — Остановка сервера базы данных
  14. Reset MySQL 8. 0 root Password in Windows
  15. The Other Way Lucid
  16. Через отладочную консоль
  17. The Other Way
  18. Rocky Linux / CentOS 7 / CentOS 8
  19. Шаг 2 – Перезапускаем сервер базы данных в режиме –skip-grant-tables
  20. Настройка режима –skip-grant-tables для MariaDB
  21. Настройка режима –skip-grant-tables для MySQL
  22. Шаг 3 – Изменение пароля root
  23. Меняем пароль root для MariaDB
  24. Меняем пароль root для MySQL
  25. Astra Linux / Ubuntu
  26. Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
  27. При помощи LiveCD
  28. Шаг 5 — Обычный перезапуск сервера базы данных
  29. Шаг 1 – Определяем версию и останавливаем сервер базы данных.
  30. Используя bash в качестве init
  31. Using bash as init
  32. Заключение

Введение

How to reset the root password in MySQL 8.0.11?

В этой статье мы расскажем, как можно решить проблему, когда вы забыли или потеряли пароль 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  Sutcliff's user avatar

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's user avatar

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

Hidde's user avatar

8 gold badges43 silver badges68 bronze badges

answered Jun 13, 2020 at 8:06

Mahdi Raad's user avatar

Mahdi Raad

5 silver badges3 bronze badges

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

William Desportes's user avatar

answered Jul 5, 2018 at 8:29

Jitesh Middha's user avatar

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

1.Остановите сервер MySQL

  • Проверьте, вошли ли вы в систему как администратор.
  • Нажмите Win + R. Когда откроется окно «Выполнить», введите:
  • Нажмите ОК.
  • В списке служб найдите MySQL. Кликните правой кнопкой мыши по ней, после чего левой кликните Stop.

msql.png

2. Измените пароль в текстовом редакторе

  • В меню найдите «Блокнот», либо используйте путь: Меню > Стандартные Windows > Блокнот.
  • Создайте новый текстовый документ с помощью команды пароля
  • В текстовом редакторе введите строку:
  • Проверьте, на месте ли кавычки и точка с запятой. Замените NewPassword своим новым паролем. «Файл» > «Сохранить как», чтобы сохранить файл в корень жесткого диска (C:\). Придумайте осмысленное имя файлу.

Команда localhost изменит пароль в вашей локальной системе. Если вы пытаетесь изменить пароль по сети, замените текущее имя хоста на localhost.

3. Запустите cmd

  • Откройте командную строку и нажмите Ctrl+Shift+Esc.
  • В меню выберите «Файл» > «Запустить новую задачу».
  • Введите cmd.exe и установите флажок для запуска от имени администратора.
  • Нажмите ОК.

Бесплатный тестовый доступ к облаку на 30 днейПолучить

Дополнительно:  Bluestacks with root скачать

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.

    OMG Ponies's user avatar

    80 gold badges520 silver badges500 bronze badges

    asked Nov 23, 2010 at 16:11

    4m0ni4c's user avatar

    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

    Alexey's user avatar

    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

    user1941390's user avatar

    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

    Ravinda Lakshan's user avatar

    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

    kta's user avatar

    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

    Dung's user avatar

    9 gold badges57 silver badges54 bronze badges

    answered May 1, 2018 at 14:41

    aiman's user avatar

    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.

    Warning /!\ 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.

    1. Boot the LiveCD and mount the root partition of your main system.
    2. Use the passwd --root MOUNT_POINT USER_NAME command to set the new password (you will not be prompted for an old one).
    3. Unmount the root partition.
    4. 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

    1. Append systemd.debug_shell to the kernel parameters.
    2. This will do a normal boot but start debug-shell.service which runs a root shell (/bin/sh) on tty9. Press Ctrl+Alt+F9 to access it.
    3. Use the passwd command to create a new password for the root user.
    4. When done, stop debug-shell.service.

    Если у вас есть установленный sudo и настроен доступ для группы wheel или для пользователя, чей пароль вы помните, вы можете сменить пароль root с помощью команды sudo passwd root.

    The Standard Way

    Warning /!\ This procedure gives you a full root shell! You can damage your system if you are not careful!

    1. 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.

    2. The file system may be read only (it is in all currently supported releases). Remount as read write
      • mount -rw -o remount /

    3. This will boot the system in rescue mode and you should arrive at a prompt that looks like this
      • root@something

    4. To reset your password type this in
      • passwd <username>

        Press return, then you will be prompted to enter and confirm a new password.

    5. 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.

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

    How to reset the root password in MySQL 8.0.11?

    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

    Jaxx0rr's user avatar

    4 silver badges7 bronze badges

    update user SET authentication_string='your password after encode to sha256' where User='root';
    

    Ankur Lahiry's user avatar

    1 gold badge14 silver badges25 bronze badges

    answered Feb 28, 2022 at 11:01

    Em   Saikamnor's user avatar

    Шаг 3 — Перезапуск сервера базы данных без проверки разрешений

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

    Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:

    .\mysqld --skip-grant-tables --skip-networking --shared-memory

    Программа НЕ должна завершить работу, то есть теперь в это окно командной строки ничего нельзя ввести.

    FreeBSD

    Перезагружаем компьютер до окна выбора вариантов загрузки:

    Окно вариантов загрузки в FreeBSD

    * данное окно в разных версиях FreeBSD может различаться.

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

    mount -u /

    Вводим команду для смены пароля:

    После этого дважды пароль (при вводе не будут отображаться символы):

    New Password:
    Retype New Password:

    Выходим из однопользовательского режима:

    Система загрузится в обычном режиме. Можно авторизовываться с новым паролем.

    Дмитрий Моск — частный мастер

    Была ли полезна вам эта инструкция?

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

    Найдите, в какой папке у вас расположен файл mysqld.exe. При установке по данной инструкции, этот файл расположен в папке C:\Server\bin\mysql-8.0\bin\.

    Откройте командную строку. Нам понадобятся права администратора, поэтому делаем следующее: нажмите Win+x и там выберите Windows PowerShell (администратор):

    How to reset the root password in MySQL 8.0.11?

    Теперь перейдите в командной строке в директорию с файлом 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)

    How to reset the root password in MySQL 8.0.11?

    Шаг 2 — Остановка сервера базы данных

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

    net stop mysql

    После того, как сервер остановлен, вы вручную получите к нему доступ для сброса пароля рута.

    Reset MySQL 8. 0 root Password in Windows

    1. Stop the MySQL 8.0service from services
    2. Go to path C:\Program Files\MySQL\MySQL Server 8.0\bin and open cmd
    3. Run mysqld --console --skip-grant-tables --shared-memory
    4. Open new cmd in the same path
    5. Run following commands
    6. mysql -u root
    7. select authentication_string,host from mysql.user where user='root';
    8. UPDATE mysql.user SET authentication_string='' WHERE user='root';
    9. Now close both the cmd.
    10. Try to start the MySQL 8.0 service.
    11. Connect using username as root & password as blank.
    12. Change the password from the user management.

    Found this at https://gist.github.com/pishangujeniya/0f839d11a7e692dadc49821c274a2394

    answered Jun 14, 2021 at 6:08

    Pishang Ujeniya's user avatar

    mysql --init-file=C:/init.sql
    

    Step 5: Execute this command and you are good to go 🙂

    answered Nov 12, 2019 at 10:27

    Ashit's user avatar

    6 bronze badges

    1. following steps outlined by others had various failures
    2. user running daemon is mysql and I cannot su to mysql id
    3. getting error can’t create lock file /var/run/mysqld/mysqlx.sock.lock , mysqld folder is getting deleted by the mysql service.
    4. had to kill -9 mysql process after running, very ugly
    1. use steps from https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
    2. use —user=mysql when running mysql commands
    3. Create folder /var/run/mysqld and chown for mysql:mysql before runing comamnds
    4. 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

    Greg Long's user avatar

    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');
      

    Mark Rotteveel's user avatar

    answered May 8, 2019 at 11:05

    chaithanya varma's user avatar

    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.


    Через отладочную консоль

    1. Добавьте параметр ядра systemd.debug_shell.
    2. Система загрузится как обычно, но запустит службу debug-shell.service, которая запустит командный интерпретатор (/bin/sh) на консоли tty9. Нажмите Ctrl+Alt+F9 чтобы перейти в неё.
    3. Используйте команду passwd для установки нового пароля суперпользователя.
    4. После завершения остановите 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

    Во время загрузки системы дожидаемся окна с возможностью выбора варианта загрузки:

    Варианты загрузки Rocky Linux / CentOS

    Наводим на нужную версию ядра, если их несколько (как правило, нужная нам находится в самом верху) и нажимаем клавишу e.

    Мы должны увидеть редактор для правки сценария загрузки. Находим строку, которая начинается с:

    Сценарий загрузки CentOS

    Редактируем в данной строке ro на rw и в конец дописываем rd.break enforcing=0:

    Редактируем сценарий загрузки CentOS

    Нажимаем 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):

    Окно Grub с вариантами загрузки в Ubuntu

    Если данное окно не появляется и начинает загружаться система, после первого загрузочного окна нажимаем Shift.

    Остаемся на пункте Ubuntu и нажимаем клавишу e — откроется редактор со сценарием загрузки. Находим в нем строку, которая начинается с:

    Сценарий загрузки Ubuntu

    Удаляем ro и в конце строки допишем:

    Исправленный сценарий загрузки Ubuntu

    Можно запускать загрузку системы. Нажимаем 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

    1. Загрузитесь с LiveCD и смонтируйте корневой раздел вашей основной системы.
    2. Используйте команду passwd --root ТОЧКА_МОНТИРОВАНИЯ ИМЯ_ПОЛЬЗОВАТЕЛЯ для установки нового пароля (старый пароль запрошен не будет).
    3. Размонтируйте корневой раздел.
    4. Перезагрузитесь и введите новый пароль.

    Шаг 5 — Обычный перезапуск сервера базы данных

    Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Для этого перейдите в окно с запущенной mysqld и нажмите Ctrl+c.

    Затем перезапустите сервис обычным образом:

    net start mysql

    Теперь вы можете подтвердить, что новый пароль работает, запустите:

    .\mysql -u root -p

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

    How to reset the root password in MySQL 8.0.11?

    Шаг 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

    1. Добавьте параметр ядра init=/bin/bash в настройках вашего загрузчика.
    2. Сейчас ваша корневая файловая система смонтирована только для чтения, поэтому перемонтируйте ее на чтение-запись командой mount -n -o remount,rw /.
    3. Используйте команду passwd для установки нового пароля суперпользователя.
    4. Перезагрузитесь с помощью команды reboot -f и не забудьте свой пароль снова!

    Примечание: Некоторые клавиатуры не распознаются должным образом при загрузке bash из GRUB, и вы не сможете ничего ввести в консоли. В этом случае вам остается лишь использовать другой способ.

    Using bash as init

    1. Append the init=/bin/bash kernel parameter to your boot loader’s boot entry.
    2. Your root file system is mounted as read-only now, so remount it as read/write: mount -n -o remount,rw /.
    3. Use the passwd command to create a new password for the root user.
    4. 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. Убедитесь, что новый пароль рута, который вы выбрали, безопасный и храните его в надёжном месте.

    Дополнительно:  How to enable root login?
    Оцените статью
    Master Hi-technology
    Добавить комментарий