Как узнать пароль mysql root windows

Если у вас Linux, то смотрите статью «Как сбросить пароль root для MySQL или MariaDB».

Пароль пользователя root спрашивается во время установки СУБД. Если установка делалась вручную, то есть без инстолятора, как это описано, например, в этой статье, то пароль может быть не установлен вовсе.

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

  • Пользователь: root
  • Пароль: root

Если вы действительно забыли пароль MySQL/MariaDB и вам нужно сбросить пароль root в MySQL на Windows, то данная статья расскажет, как это сделать.

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

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

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

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

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

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

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

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

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

Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены. Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду:

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('новый_пароль');

Не забудьте поменять новый_пароль на выбранный вами новый пароль.

Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее вместо этой вы можете попробовать UPDATE … SET для сброса root пароля:

UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';

После этого не забудьте перегрузить таблицы привилегий:

FLUSH PRIVILEGES;

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

Query OK, 0 rows affected (0.02 sec)

Выходим из сессии:

exit;

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

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

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

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

net start mysql

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

.\mysql -u root -p

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

Заключение

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

Ошибка «—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

то вам необходимо к команде запуска mysqld добавить флаг —shared-memory.

Связанные статьи:

  • MariaDB для Windows (100%)
  • Как обновить MySQL (100%)
  • Как обновить MariaDB в Windows (100%)
  • Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin (100%)
  • Как в phpMyAdmin поменять настройки экспорта по умолчанию (100%)
  • Как тестировать отправку писем в PHP на Windows (RANDOM — 50%)

В данной статье рассмотрим способ восстановления MySQL root пароля, путём сброса старого и установки нового, в случае если старый пароль утерян или забыт.
Забыли пароль MySQL root пользователя? Не беспокойтесь, его можно восстановить. Подключаясь к root пользователю MySQL без ввода пароля (так как он был сохранён ранее), рано или поздно можно столкнуться с сообщением о том, что в доступе отказано. MySQL требует ввода пароля, который пользователь не помнит.


Перейти к просмотру

Методы восстановления базы данных MySQL, MSSQL и Oracle ⚕️👨‍💻🖥️


Методы восстановления базы данных MySQL, MSSQL и Oracle ⚕️👨‍💻🖥️

Итак, в том случае если вы забыли пароль или ввели его неправильно, и получите сообщение о следующей ошибке:

# mysql -u root mysql

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

Командная строка: mysql -u root mysql
  1. Остановите MySQL сервер.

    Первое, что необходимо сделать в таком случае, остановить MySQL сервер. Сделайте это следующим способом:

    • перейдите в папку с mysqladmin.exe:
      # cd C:\Program Files\MySQL\MySQL Server 5.7\bin
    • Остановите MySQL сервер:
      # mysqladmin –uroot –pqwerty shutdown
    Командная строка

    MySQL сервер также можно остановить из MySQL Workbench. Для этого перейдите в меню Startup / Shutdown и нажмите кнопку Stop Server.

    MySQL. Startup / Shutdown
  2. Запустите сервер MySQL с отключенными таблицами безопасности.

    Это позволит подключаться к серверу без проверки пароля.

    Для этого запустите команду:
    # mysqld_safe –skip-grant-tables

    Или добавьте опцию skip-grant-tables в конфигурационный файл запуска my.ini после строчки [mysqld], после чего запустите сервер.
    Данный файл расположен: C:\ProgramData\MySQL\MySQL Server 5.7

    C:ProgramDataMySQLMySQL Server 5.7
  3. Зайдите в MySQL как root пользователь без пароля.

    После отмены запроса пароля, теперь есть такая возможность.

    # mysql –uroot

  4. Установите новый MySQL Root пароль

    mysql> UPDATE user SET Password=PASSWORD (‘НОВЫЙ ПАРОЛЬ’) WHERE User=’root’;
    mysql> flush privileges
    mysql> exit

  5. Остановите сервер MySQL и уберите из конфигурационного файла опцию –skip-grant-tables.

    # mysqladmin –uroot –pqwerty shutdown

    Уберите из конфигурационного файла опцию skip-grant-tables
  6. Перезагрузите MySQL сервер.

    # mysqld restart

  7. Залогиньтесь в MySQL root аккаунте с использованием нового пароля.

    # mysql –uroot –pНОВЫЙПАРОЛЬ

    Как восстановить MySQL Root пароль


Перейти к просмотру

Восстановление удаленной или поврежденной базы данных 1C: крах, ошибки 💥 🥇 ⚕️


Восстановление удаленной или поврежденной базы данных 1C: крах, ошибки 💥 🥇 ⚕️

I cannot figure out my MySQL root password; how can I find this out? Is there any file where this password is stored?

I am following this link but I do not have directadmin directory in local.

Ben's user avatar

Ben

51.8k36 gold badges128 silver badges150 bronze badges

asked Jun 5, 2012 at 9:54

Om3ga's user avatar

8

thanks to @thusharaK I could reset the root password without knowing the old password.

On ubuntu I did the following:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

Then run mysql in a new terminal:

mysql -u root

And run the following queries to change the password:

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;

In MySQL 5.7, the password field in mysql.user table field was removed, now the field name is ‘authentication_string’.

Quit the mysql safe mode and start mysql service by:

mysqladmin shutdown
sudo service mysql start

MagicLegend's user avatar

MagicLegend

3281 gold badge5 silver badges22 bronze badges

answered Oct 7, 2014 at 10:28

eeezyy's user avatar

eeezyyeeezyy

2,1091 gold badge15 silver badges18 bronze badges

7

You can’t view the hashed password; the only thing you can do is reset it!

Stop MySQL:

sudo service mysql stop

or

$ sudo /usr/local/mysql/support-files/mysql.server stop

Start it in safe mode:

$ sudo mysqld_safe --skip-grant-tables

(above line is the whole command)

This will be an ongoing command until the process is finished so open another shell/terminal window, log in without a password:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

MySQL 5.7 and over:

mysql> use mysql; 
mysql> update user set authentication_string=password('password') where user='root'; 

Exit the MySQL CLI:

mysql> exit 

Restart MySQL in normal mode, first stopping the safe mode instance:

$ mysqladmin -u root -p shutdown   # (when prompted, enter the new password just set)
$ sudo service mysql start

or

$ sudo /usr/local/mysql/support-files/mysql.server start

Your new password is ‘password’.

Reg Edit's user avatar

Reg Edit

6,7291 gold badge36 silver badges46 bronze badges

answered Sep 17, 2014 at 3:57

tk_'s user avatar

tk_tk_

16.5k8 gold badges80 silver badges90 bronze badges

5

One thing that tripped me up on a new install of MySQL and wondering why I couldn’t get the default password to work and why even the reset methods where not working.
Well turns out that on Ubuntu 18 the most recent version of MySQL server does not use password auth at all for the root user by default. So this means it doesn’t matter what you set it to, it won’t let you use it. It’s expecting you to login from a privileged socket.

mysql -u root -p

This will not work, even if you are using the correct password.

Instead, you need to use:

sudo mysql

that will work with out any password.
then once you in you need type in

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';

Then log out and now it will accept your password.

Jakov's user avatar

Jakov

8892 gold badges17 silver badges38 bronze badges

answered Apr 20, 2019 at 3:24

Kit Ramos's user avatar

Kit RamosKit Ramos

1,5531 gold badge15 silver badges32 bronze badges

1

MySQL 5.7 and above saves root in MySQL log file.

Please try this:

sudo grep 'temporary password' /var/log/mysqld.log

answered Mar 13, 2016 at 14:59

Vlad's user avatar

VladVlad

3,4651 gold badge31 silver badges24 bronze badges

2

You cannot find it. It is stored in a database, which you need the root password to access, and even if you did get access somehow, it is hashed with a one-way hash. You can reset it: How to Reset the Root Password

Kuro Neko's user avatar

answered Jun 5, 2012 at 9:55

lanzz's user avatar

lanzzlanzz

42.2k10 gold badges89 silver badges98 bronze badges

1

Follow these steps to reset password in Windows system

  1. Stop Mysql service from task manager

  2. Create a text file and paste the below statement

MySQL 5.7.5 and earlier:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');

MySQL 5.7.6 and later:

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

  1. Save as mysql-init.txt and place it in 'C' drive.

  2. Open command prompt and paste the following

C:\> mysqld --init-file=C:\\mysql-init.txt

Community's user avatar

answered Jul 1, 2016 at 15:13

Lokesh kumar Chippada's user avatar

2

This worked for me:

On terminal type the following

$ sudo mysql -u root -p

Enter password://just press enter

mysql>

answered Feb 19, 2017 at 15:35

Light's user avatar

LightLight

1431 silver badge6 bronze badges

2

Unless the package manager requests you to type the root password during installation, the default root password is the empty string. To connect to freshly installed server, type:

shell> mysql -u root --password=
mysql>

To change the password, get back the unix shell and type:

shell> mysqladmin -u root --password= password root

The new password is ‘root’. Now connect to the server:

shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Oops, the password has changed. Use the new one, root:

shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql> 

Bingo! New do something interesting

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

Maurycy

answered Jan 17, 2015 at 9:34

mszmurlo's user avatar

mszmurlomszmurlo

1,2601 gold badge13 silver badges28 bronze badges

1

As addition to the other answers, in a cpanel installation, the mysql root password is stored in a file named /root/.my.cnf. (and the cpanel service resets it back on change, so the other answers here won’t help)

answered Sep 24, 2015 at 7:48

Ohad Cohen's user avatar

Ohad CohenOhad Cohen

5,7763 gold badges39 silver badges37 bronze badges

0

you can view mysql root password , well i have tried it on mysql 5.5 so do not know about other new version well work or not

nano ~/.my.cnf

answered Oct 28, 2016 at 17:26

user889030's user avatar

user889030user889030

4,3733 gold badges49 silver badges51 bronze badges

0

The default password which worked for me after immediate installation of mysql server is : mysql

LinusGeffarth's user avatar

LinusGeffarth

27.4k29 gold badges120 silver badges174 bronze badges

answered Sep 29, 2014 at 8:43

Deepak Chaudhry's user avatar

1

The procedure changes depending the version of MySql. Follow the procedure exactly as described for your version:

  • HINTS — Read before the instructions page for your version of MySql*

  • In step 5: Instead of run CMD, create a shortcut on your desktop calling CDM.exe. Then right-click on the shortcut and select «Execute as Administrator».

  • In step 6: Skip the first proposed version of the command and execute the second one, the one with the —defaults-file parameter

  • Once you execute the command, if everything is ok, the CMD window remains open and the command of step 6 continues executing. Simply close the window (click ‘x’), and then force close MySQl from the Task Manager.

  • Delete the file with the SQL commands, and start again MySQL. The password must be changed now.

5.0
http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

5.1
http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html

… just change the version in the link (5.5, 5.6, 5.7)

ashatte's user avatar

ashatte

5,4628 gold badges39 silver badges50 bronze badges

answered Oct 31, 2013 at 0:28

JuanCamilo's user avatar

In your «hostname».err file inside the data folder MySQL works on, try to look for a string that starts with:

«A temporary password is generated for roor@localhost «

you can use

less /mysql/data/dir/hostname.err 

then slash command followed by the string you wish to look for

/"A temporary password"

Then press n, to go to the Next result.

answered Jan 11, 2016 at 5:06

nDCasT's user avatar

I solved this a different way, this may be easier for some.

I did it this way because I tried starting in safe mode but cannot connect with the error:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

What I did was to connect normally as root:

$ sudo mysql -u root

Then I created a new super user:

mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit

Then log in as myuser

$ mysql -u myuser -p -h localhost

Trying to change the password gave me no errors but did nothing for me so I dropped and re-created the root user

mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;

The root user is now working with the new password

answered Sep 6, 2019 at 18:04

Trevorbest's user avatar

Using Debian / Ubuntu mysql packages, you can login with user debian-sys-maint, which has all the expected privileges, the password is stored in the file /etc/mysql/debian.cnf

answered Jan 21, 2022 at 9:51

Ohad Cohen's user avatar

Ohad CohenOhad Cohen

5,7763 gold badges39 silver badges37 bronze badges

0

System:

  • CentOS Linux 7
  • mysql Ver 14.14 Distrib 5.7.25

Procedure:

  1. Open two shell sessions, logging in to one as the Linux root user
    and the other as a nonroot user with access to the mysql command.

  2. In your root session, stop the normal mysqld listener and start a
    listener which bypasses password authentication (note: this is a
    significant security risk
    as anyone with access to the mysql
    command may access your databases without a password. You may want
    to close active shell sessions and/or disable shell access before
    doing this):

    # systemctl stop mysqld
    # /usr/sbin/mysqld --skip-grant-tables -u mysql &

  3. In your nonroot session, log in to mysql and set the mysql root password:

    $ mysql
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    mysql> quit;

  4. In your root session, kill the passwordless instance of mysqld and restore the normal mysqld listener to service:

    # kill %1
    # systemctl start mysqld

  5. In your nonroot session, test the new root password you configured above:

    $ mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    ...
    mysql>

answered Jun 24, 2019 at 17:57

CODE-REaD's user avatar

CODE-REaDCODE-REaD

2,8383 gold badges33 silver badges60 bronze badges

I was stuck with this problem for a couple of minutes and the following was the only solution that actually worked:
https://phoenixnap.com/kb/access-denied-for-user-root-localhost

  1. sudo mysql
  2. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';
  3. mysql -u root -p

answered Jan 28, 2021 at 11:56

Ali Havasi's user avatar

Ali HavasiAli Havasi

5916 silver badges8 bronze badges

In case you already set a password in the past the mysql -uroot -p solution will not work,

In my case I used some of the answers above to solve this (Ubuntu 16). The result was:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &

if you see this text in the screen:
mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists.
then do:

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

sudo mysqld_safe --skip-grant-tables & # Look at the & at the end! 

Enter other terminal to set your password like this:

sudo mysql -u root

mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('__NEW__PASSWORD__');
mysql> flush privileges;
mysql> quit;

then restart the service and login

# end mysqld_safe in the other terminal
sudo service mysql start
sudo mysql -h 127.0.0.1 -uroot -p

answered May 4, 2021 at 18:04

user9869932's user avatar

user9869932user9869932

6,6113 gold badges55 silver badges49 bronze badges

For MySQL 5.5 on Windows 10

You can’t find the password as it is hashed in the table, so resetting it is the only option.

The solution of importing the new password script by .txt file, as offered by Lokesh kumar Chippada, didn’t work for me. I found that the command prompt just froze after initiating the import.

I added skip-grant-tables to the my.ini file as per the top the answer on this SO post by tonycoupland.

I was then able to login to mysql from the command line

$> mysql

and then in mysql

mysql> FLUSH PRIVILEGES;

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

See ‘B.3.3.2.3 Resetting the Root Password: Generic Instructions’ on mysql dev page. I have now removed skip-grant-tables from the my.ini file, and I can login as a root user using the new password I created.

answered May 6, 2022 at 2:16

Mr. J's user avatar

Mr. JMr. J

1,5362 gold badges19 silver badges42 bronze badges

Go to phpMyAdmin > config.inc.php > $cfg[‘Servers’][$i][‘password’] = »;

answered Oct 19, 2017 at 4:39

user3288185's user avatar

1

  • Главная

  • Инструкции

  • MySQL

  • Как сбросить пароль root MySQL: пошаговая инструкция

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

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

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

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

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

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

MySQL не использует PAM и пароль от SSH не подойдёт. Пароль root задаётся в процессе установки сервера баз данных, на этапе формирования таблиц привилегий.

Если после попытки входа вместо приветствия база данных выдаёт ошибку ERROR 1045: Access denied for user 'root'@'localhost', значит нужно сбросить root-пароль.

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

В Ubuntu сбросить пароль root для MySQL можно такими же методами, как и в Debian, конкретной привязки к ОС нет. Небольшое отличие возможно для CentOS 7, это мы отметим ниже в соответствующем пункте.

Как в MySQL сбросить пароль root методом skip-grant-tables

Достаточно распространённый способ, ввиду его простоты. Приводим пошаговый план этой операции:

Шаг 1

Остановим службу базы данных:

service mysqld stop

Шаг 2

Запускаем службу без таблиц привилегий:

mysqld --skip-grant-tables&

Амперсанд в конце позволяет запустить службу в фоне и она не занимает отдельное окно терминала.

Шаг 3

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

mysql -u root

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

Шаг 4

Подключаем таблицы привилегий:

FLUSH PRIVILEGES;

В ответ получаем: Query OK, 0 rows affected.

Шаг 5

Установим новый пароль суперпользователя root:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';

Если этот запрос не сработал, попробуйте:

UPDATE `mysql`.`user` SET `password`=password('ПАРОЛЬ') WHERE `user`='root';

Или:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ПАРОЛЬ');

На CentOS 7 сбросить пароль MySQL root можно, выполнив команду:

UPDATE `mysql`.`user` SET ` authentication_string`=password('ПАРОЛЬ') WHERE `user`='root';

Об успешности выполнения можно судить по ответу Query OK, 0 rows affected. Пароль может быть даже пустым значением, но в таком случае будет потеряна возможность подключения к серверу любыми другими способами, кроме командной строки. Пароль изменяется сразу после ввода команды. Проверить можно, например, подключившись через phpMyAdmin, если не было передано пустое значение.

Шаг 6

Выход из mysql:

quit;

В ответ получим Bye, вернётся обычный терминал.

Шаг 7

Запускаем сервер баз данных в штатном режиме:

service mysqld start

Как в MySQL сбросить пароль root на ОС Windows

Сброс пароля суперпользователя MySQL под ОС Windows схож с процедурой сброса root-пароля СУБД для Linux-систем. Некоторые отличия могут быть только в процессе поиска и запуска службы самой базы данных. Из-за разных названий служб MySQL и MariaDB нет привязки к названию «mysql», и иногда необходимо указывать конкретное название службы. Рассмотрим пошагово сброс пароля суперпользователя базы данных для ОС Windows.

Шаг 1

Открываем интерпретатор команд в режиме Администратора. В этом случае есть разница, какая база данных установлена, в Windows службы имеют различные названия. Проверяем, какая установлена:

Для MySQL:

sc qc "mysql"

Для MariaDB:

sc qc "mariadb"

В случае, если служба отсутствует, будет показано сообщение «Указанная служба не установлена». При успешном выполнении будет выведена основная служебная информация.

Шаг 2

Если не установлена переменная %PATH%, необходимо перейти в папку с исполняемым файлом службы базы данных, путь можно определить по ответу sc qc в «Имя_двоичного_файла». В нашем случае это С:\localhost\mariadb\bin\.

cd C:\localhost\mariadb\bin\

Если диск другой, то переходим на него, указав букву диска, например:

D:

Шаг 3

Остановим уже запущенную службу:

Для MySQL:

net stop mysql

Для MariaDB:

net stop mariadb

Шаг 4

Откроем окно дополнительного интерпретатора командой start. В отличие от Linux, в Windows амперсанд в конце команды не работает, а при запуске службы она не даст более вводить команды до окончания сессии (нажатии CTRL+C).

Шаг 5

Запуск сервера без привилегий (идентично для MySQL и MariaDB):

mysqld --skip-grant-tables

Шаг 6

Во втором окне вводим:

mysql -uroot -p

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

Шаг 7

Для начала необходимо выполнить команду:

FLUSH PRIVILEGES;

Без этой начальной команды можно получить ошибку при смене пароля: «ERROR 1290: The MariaDB server is running with the —skip-grant-tables option so it cannot execute this statement». 

Шаг 8

Выполняем команду:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';

Примечание: если команда не сработала, попробуйте варианты из пятого шага инструкции для Linux-систем.

Закрываем окно интерпретатора с запущенной временной версией базы данных или нажимаем CTRL+C.

Шаг 9

Запускаем системную службу:

Для MySQL:

net start mysql

Для MariaDB:

net start mariadb

Заключение

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

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

  • Используйте сложные пароли, состоящие из комбинации букв, цифр и специальных символов, а также регулярно меняйте их. 
  • Ограничьте доступ к базе данных только необходимым пользователям, чтобы минимизировать риски несанкционированного доступа. 
  • Регулярно обновляйте систему MySQL, чтобы устранять известные уязвимости и получать последние исправления безопасности.
  • Регулярно создавайте резервные копии базы данных. Это ваша страховка в случае потери данных или сбоя системы. Разработайте стратегию резервного копирования, определите частоту и методы создания резервных копий, а также проверяйте их восстанавливаемость, чтобы быть уверенными в возможности восстановления данных.
  • Помните о важности обучения и саморазвития в области управления базами данных. Будьте в курсе последних тенденций, новых функций и инструментов MySQL. Воспользуйтесь обучающими ресурсами, участвуйте в семинарах и конференциях, а также общайтесь с опытными профессионалами в этой области. Постоянное обновление своих знаний и навыков поможет вам эффективно управлять базой данных и решать возникающие проблемы.

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

There might arise a situation where you need to reset the root password for your MySQL database.  It can be because you forgot your password or you need to change the password for security reasons. 

In this article, we will look into the process of resetting the MySQL password using Windows cmd. To do so follow the below steps:

Step 1: Stop the MySQL server

  • Begin by checking if you’re logged in as an administrator.
  • Press Win+R (hold the Windows/Super key, and press “r”.) Once the “Run” box appears type:
services.msc
  • Click OK.
  • Scroll down the list of services to find the MySQL service. Right-click that entry then left-clicks Stop.

Step 2: Launch a Text Editor

  • Click on the menu and search for Notepad.
  • Alternatively, you can use the path: Menu > Windows Accessories > Notepad.

Step 3: Create a New Text File with the Password Command

  • Enter the following line into the text editor:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  • Make sure you keep the quote marks and semicolon. Replace NewPassword with the password of your choice.

  • Use the File > Save As menu to save the file to the root of your hard drive (C:\ ). Choose a filename that makes sense, such as mysql-init.txt.

Consequently, the localhost command will make the password change on your local system. If you’re trying to change the password on a system over the network, substitute the hostname for localhost.

Step 4: Open a Command Prompt

  • Press Ctrl+Shift+Esc.
  • Then, click on the File menu > Run new task.
  • Type cmd.exe, and check the box to run as administrator.
  • Click OK.

Step 5: Restart the MySQL Server with Your New Config File

  •  Navigate to the MySQL directory using the command prompt:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

Accordingly, the command line will show that you’re working in this folder.

  •  Enter the following:
mysqld --init-file=C:\\mysql-init.txt

Note that there are two slashes after the C: prompt.

Also, if you choose a different name in Step 2, use the same name after the double slash.

Step 6: Clean up

Now, you can log into your MySQL server as root using the new password.

  • Double-check to make sure it works. If you have unique configuration options (such as launching MySQL with a -defaults-file option), go ahead and do so.

Once MySQL launches, and you’ve confirmed the password change, delete the C:\myswl-init.txt file.

At this stage, you have successfully reset the root password for your MySQL database.

Last Updated :
28 Dec, 2022

Like Article

Save Article

  • Как узнать пароль от microsoft на windows 10
  • Как узнать пароль беспроводной сети в windows 10
  • Как узнать пароль от аккаунта администратора windows 10
  • Как узнать объем видеокарты на windows 10 на ноутбуке
  • Как узнать оперативку на компьютере windows 10