- Как сбросить пароль root MySQL или MariaDB в Windows
- Шаг 1 — Определяем версию системы управления базой данных
- Шаг 2 — Остановка сервера базы данных
- Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
- Шаг 4 — Смена пароля рута
- Шаг 5 — Обычный перезапуск сервера базы данных
- Заключение
- Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
- Ethical hacking and penetration testing
- InfoSec, IT, Kali Linux, BlackArch
- How to reset MySQL or MariaDB root password on Windows
- Step 1 – Determine the version of the database management system
- Step 2 – Stop the Database Server
- Step 3 – Restarting the database server without checking permissions
- Step 4 – Change the root password
- Step 5 – Regular restart of the database server
- Conclusion
- The error “—shared-memory, or —named-pipe should be configured on NT OS”
- Сброс пароля root в MySQL и MariaDB
- Требования
- 1: Определение версии MySQL и MariaDB
- 2: Остановка сервера БД
- 3: Перезапуск базы данных без проверки привилегий
- 4: Изменение пароля root
- 5: Перезапуск сервера
- Заключение
Как сбросить пароль root MySQL или MariaDB в 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, для этого используйте команду вида:
Например, у меня это папка C:\Server\bin\mysql-8.0\bin\, тогда команда такая:
Нужно определить версию MySQL/MariaDB, для этого выполните команду:
Шаг 2 — Остановка сервера базы данных
Для изменения пароля root вы должны заранее отключить сервер базы данных. Для MySQL и MariaDB вы можете сделать это командой:
После того, как сервер остановлен, вы вручную получите к нему доступ для сброса пароля рута.
Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
Если вы запускаете MySQL и MariaDB без загрузки информации о привилегиях пользователя, она позволит вам без ввода пароля получить доступ к командной строке базы данных с привилегиями рута. Это позволит вам получить доступ к базе данных без знания парольной фразы. Чтобы это сделать, вам нужно не дать базе данных загрузить таблицы привилегий, которые содержат информацию о привилегиях пользователя. Поскольку это несёт риск безопасности, вы также должны избежать сетевой активности, чтобы не допустить подключения других клиентов.
Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:
Программа НЕ должна завершить работу, то есть теперь в это окно командной строки ничего нельзя ввести.
Шаг 4 — Смена пароля рута
Теперь вы можете подключиться к базе данных как пользователь рут, у которого не спросят пароль.
Открываем новое окно командной строки, можно без прав администратора.
Опять переходим в нужную папку
И подключаемся к серверу MySQL/MariaDB
Вы сразу же увидите приглашение оболочки базы данных. Приглашение командной строки MySQL:
Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.
Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены. Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду:
Теперь действительно мы можем поменять пароль рута.
Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:
Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:
Не забудьте поменять новый_пароль на выбранный вами новый пароль.
Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее вместо этой вы можете попробовать UPDATE … SET для сброса root пароля:
После этого не забудьте перегрузить таблицы привилегий:
В любом случае вы должны видеть подтверждение, что команда успешно выполнена. Вывод:
Выходим из сессии:
Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.
Шаг 5 — Обычный перезапуск сервера базы данных
Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Для этого перейдите в окно с запущенной mysqld и нажмите Ctrl+c.
Затем перезапустите сервис обычным образом:
Теперь вы можете подтвердить, что новый пароль работает, запустите:
Эта команда должна вызвать приглашение в который нужно ввести новый пароль. Введите его, вы должны получить доступ к интерфейсу командной строки базы данных, как это обычно и происходит.
Заключение
Теперь вы восстановили административный доступ к серверу MySQL или MariaDB. Убедитесь, что новый пароль рута, который вы выбрали, безопасный и храните его в надёжном месте.
Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
Если при запуске mysqld вы столкнулись со следующей ошибкой:
то вам необходимо к команде запуска mysqld добавить флаг —shared-memory.
Ethical hacking and penetration testing
InfoSec, IT, Kali Linux, BlackArch
How to reset MySQL or MariaDB root password on Windows
The root password is set during the installation of the DBMS. If the installation was done manually, that is, without an installer, as described, for example, in this article, then the password may not be set at all.
If you use any ready-made assemblies that include MySQL/MariaDB, then ask for the password on the official sites of these assemblies. Also try these credentials:
- User: root
- Password: root
If you really forgot the MySQL/MariaDB password and you need to reset the root password in MySQL on Windows, then this article will tell you how to do it.
Step 1 – Determine the version of the database management system
Find in which folder your mysqld.exe file is located. When installed according to this turorial, this file is located in the C:\Server\bin\mysql-8.0\bin\ folder.
Open a command prompt. We need administrator rights, so we do the following: click Win+x and select Windows PowerShell (administrator) there:
Now go to the directory with the mysqld.exe file on the command line, for this, use a command of the form:
For example, I have this in the C:\Server\bin\mysql-8.0\bin\ folder, then the command is:
You need to determine the version of MySQL/MariaDB, to do this, run the command:
Step 2 – Stop the Database Server
To change the root password, you must stop the database server in advance. For MySQL and MariaDB, you can do this with the command:
After the server is stopped, you will start it manually to reset the root password.
Step 3 – Restarting the database server without checking permissions
If you start MySQL and MariaDB without loading user privilege information, it will allow you to access the database command line with root privileges without entering a password. This will allow you to access the database without knowing the passphrase. To do this, you need to prevent the database from loading privilege tables that contain user privilege information. Since this carries a security risk, you should also avoid network activity in order to prevent other clients from connecting.
Run the DBMS without loading privilege tables and without network access:
The program should NOT shut down, that is, now nothing can be entered into this command line window.
Step 4 – Change the root password
Now you can connect to the database as a root user who will not be asked for a password.
Open a new command prompt window, without administrator privileges.
Again, go to the desired folder
And connect to the MySQL/MariaDB server
You will immediately see a database shell prompt. MySQL command line prompt:
Now that you have root access, you can change the root password.
An easy way to change the root password for modern versions of MySQL is to use the ALTER USER query. However, this command will not work right now because privilege tables are not loaded. Let’s tell the database server to reload the privilege tables by typing:
Now, indeed, we can change the root password.
For MySQL 5.7.6 and later, and also for MariaDB 10.1.20 and later, use the following command:
For MySQL 5.7.5 and older, as well as for MariaDB 10.1.20 and older, use:
Remember to change the new_password to your new password.
Note: if the ALTER USER command does not work, then this is usually a sign of a more serious problem. However, instead of this, you can try UPDATE … SET to reset the root password:
After that, do not forget to reload the privilege tables:
In any case, you should see confirmation that the command completed successfully. Output:
Exit the session:
The password has been changed, you can stop the manually started instance of the database server and restart it as it was before.
Step 5 – Regular restart of the database server
To begin, stop the database server instance that you manually started in Step 3. To do this, go to the window with mysqld running and press Ctrl+c.
Then restart the service as usual:
Now you can confirm that the new password works, run:
This command should prompt you to enter a new password. Enter it, you should access the database command line interface, as is usually the case.
Conclusion
You have now restored administrative access to the MySQL or MariaDB server. Make sure that the new root password that you selected is safe and keep it in a safe place.
The error “—shared-memory, or —named-pipe should be configured on NT OS”
If you encounter the following error when starting mysqld:
then you need to add the —shared-memory flag to the mysqld start command.
Сброс пароля root в MySQL и MariaDB
Если вы забыли или потеряли пароль пользователя root системы управления базами данных MySQL или MariaDB, вы можете получить доступ к данным, сбросив утерянный пароль. Для этого нужен доступ к серверу и учетная запись пользователя с поддержкой sudo.
Данное руководство поможет сбросить пароль пользователя root в MySQL и MariaDB.
Требования
Чтобы восстановить пароль MySQL или MariaDB, нужен:
- Доступ к серверу, на который установлена СУБД.
- Пользователь с поддержкой sudo.
1: Определение версии MySQL и MariaDB
Большинство современных дистрибутивов Linux поставляются с MySQL или MariaDB (аналог MySQL,полностью совместимый с этой БД). Способ восстановления пароля во многом зависит от версии СУБД.
Чтобы узнать версию программы, введите:
На экране появится такой вывод:
# MySQL
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
# или MariaDB
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
Запишите название и версию СУБД: эти данные пригодятся в дальнейшем.
2: Остановка сервера БД
Чтобы изменить пароль root, отключите сервер баз данных.
# MySQL
sudo systemctl stop mysql
# MariaDB
sudo systemctl stop mariadb
3: Перезапуск базы данных без проверки привилегий
Если вы запустите MySQL или MariaDB, не загружая информацию о пользовательских привилегиях, вы сможете получить доступ к командной строке базы данных с привилегиями суперпользователя без пароля.
Для этого нужно предотвратить загрузку таблиц привилегий, в которых хранятся данные о привилегиях пользователя. Такой метод доступа подвергает сервер опасности, потому очень важно запретить подключения сети и других клиентов.
Чтобы запустить БД без таблиц привилегий, введите:
sudo mysqld_safe —skip-grant-tables —skip-networking &
Амперсанд (&) в конце команды переведёт её в фоновый режим, и вы сможете продолжить работу с терминалом.
Подключитесь к БД как root. Пароль не будет запрошен:
Вы получите доступ к командной оболочке базы данных:
# MySQL
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
# MariaDB
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
4: Изменение пароля root
В современных версиях MySQL изменить пароль пользователя root можно с помощью команды ALTER USER. Однако данная команда не сработает без таблиц привилегий, которые вы отключили, чтобы получить доступ к БД.
Перезапустите таблицы привилегий с помощью команды:
Теперь можно изменить пароль root.
В MySQL 5.7.6+ и MariaDB 10.1.20+ используйте команду:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;
Примечание: Если команда ALTER USER не работает, это обычно свидетельствует о более серьезной проблеме. Вы можете попробовать изменить пароль с помощью UPDATE … SET.
UPDATE mysql.user SET authentication_string = PASSWORD(‘new_password’) WHERE User = ‘root’ AND Host = ‘localhost’;
В MySQL 5.7.5, MariaDB 10.1.20 и более ранних версиях СУБД введите:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘new_password’);
Примечание: Вместо new_password укажите новый пароль пользователя root.
После этого нужно перезапустить таблицы привилегий.
После обновления пароля на экране должен появиться такой вывод:
Query OK, 0 rows affected (0.00 sec)
Пароль успешно изменен, так что теперь можно перезапустить сервер базы данных.
5: Перезапуск сервера
Остановите сервер баз данных, запущенный вручную в разделе 3. Эта команда находит (ID процесса) MySQL или MariaDB и отправляет SIGTERM, чтобы выйти после выполнения операции очистки.
# MySQL
sudo kill `cat /var/run/mysqld/mysqld.pid`
# MariaDB
sudo kill `/var/run/mariadb/mariadb.pid`
Теперь можно перезапустить сервис:
# MySQL
sudo systemctl start mysql
# MariaDB
sudo systemctl start mariadb
Убедитесь, что новый пароль работает:
Команда должна запросить пароль пользователя root.
Заключение
Теперь вы знаете, как восстановить доступ суперпользователя к серверу MySQL и MariaDB.
Помните, что новый пароль должен быть сложным и уникальным.