- Как сбросить пароль root MySQL или MariaDB в Windows
- Шаг 1 — Определяем версию системы управления базой данных
- Шаг 2 — Остановка сервера базы данных
- Шаг 3 — Перезапуск сервера базы данных без проверки разрешений
- Шаг 4 — Смена пароля рута
- Шаг 5 — Обычный перезапуск сервера базы данных
- Заключение
- Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»
- Как сбросить пароль root для MySQL в среде Windows
- Information Security Squad
- 👥 Как сбросить пароль root в MySQL 8.0 в Windows
- How to reset the root password in MySQL 8.0.11?
- 6 Answers 6
- Chapter 4 Resetting the Root Password: Windows Systems
Как сбросить пароль 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.
Как сбросить пароль root для MySQL в среде Windows
Сброс пароля MySQL в среде Linux описан в статье Как сбросить пароль root для MySQL в среде Linux. Если же необходимо сбросить пароль в среде Microsoft Windows, то процедура имеет небольшие отличия.
1. Остановить службу MySQL
это можно сделать через командную строку, выполнить команду:
или же через оснастку services.msc. При остановке службы через оснастку, можно сразу просмотреть путь к исполняемому файлу, этот путь потребуется на следующем шаге
2. Выполнить в командной строке запуск MySQL сервера с отключенными таблицами безопасности, это параметр (—skip-grant-tables)
3. Открываем еще одну командную строку и последовательно выполняем команды:
- Явно указать БД с которой работаем,
- Установить новый пароль для сервера MySQL
- Указать серверу заново выполнить загрузку таблицы привилегий
- Отключиться от сервера
4. Закрывает командную строку открытую на шаге 2
5. Запускаем MySQL сервер в камандной строке используя команду:
или же через оснастку services.msc запускаем службу MySQL
6. Если служба запустилась, то штатное подключение к серверу с паролем от пользователя root будет успешным.
Описанная выше процедура одинаково подходит как для сервера MySql, так и для сервера MariaDB, с тем лишь исключением, что название сервисов может быть не mysql (mysqld), а mariadb.
Что еще ты не знаешь о Mysql? Бесплатный тест по СУБД MySql.
Information Security Squad
stay tune stay secure
- Home
- 2019
- Октябрь
- 29
- 👥 Как сбросить пароль root в MySQL 8.0 в Windows
👥 Как сбросить пароль root в MySQL 8.0 в Windows
Если вы предварительно установили пароль root, но забыли его, вы можете установить новый пароль.
Следующая процедура подойдет только для систем Windows.
Вы должны войти в Windows как пользователь с правами администратора, затем выполните следующие действия:
1. Остановите сервер MySQL, если он работает.
Для сервера, работающего в качестве службы Windows, перейдите в диспетчер служб:
Параметр –skip-grant-tables пропустит чтение таблиц разрешений для MySQL Server; это позволит любому пользователю подключаться без использования пароля с полным доступом ко всем таблицам.
Дополнительный параметр –skip-network снижает риск безопасности, не позволяя серверу принимать соединения через TCP / IP; вместо этого включаются именованные каналы с помощью –enabled-named-pipe.
Именованные каналы доступны только в системах на базе NT, поэтому TCP / IP должен использоваться для других ОС Windows.
Если вы беспокоитесь о безопасности, вы должны использовать брандмауэр для блокировки внешнего доступа к серверу в течение этого времени.
Оставив первое окно консоли открытым, откройте второе окно консоли и выполните следующие команды (введите каждую в одной строке):
Замените «newpwd» фактическим паролем рута, который вы хотите использовать.
Вторая команда предложит вам ввести новый пароль для доступа.
Введите пароль, который вы указали в первой команде.
Как только вы остановили сервер MySQL, снова перезапустите его в обычном режиме.
Если вы запускаете сервер как службу, вы можете запустить его из окна Windows служб.
Если вы запускаете сервер вручную, используйте любую команду, которую вы обычно используете.
Теперь вы сможете подключиться, используя новый пароль root.
Один из способов сброса пароля root в Windows – выполнить процедуру, указанную в руководстве по ссылке ниже.
How to reset the root password in MySQL 8.0.11?
I have actually lost my root password and I need to change it. I follow these steps :
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.
Step # 3: Connect to the MySQL server as the root user.
First error, so I tried :
Always the same error said :
How can I resolve this?
6 Answers 6
This function was removed in MySQL 8.0.11
1.if you in skip-grant-tables mode
in mysqld_safe:
and then, in terminal:
2.not in skip-grant-tables mode
just in mysql:
Jus login to mysql with sudo
Step 1: Create a new file in your root directory( e.g C:) Step 2: Write this ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘abc’ and save it Step 3: If your Mysql service is already running, please stop this and open your CMD Step 4: Go to your Mysql installation directory (e.g C:\Program Files\MySQL\MySQL Server 8.0\bin) and type this command
Step 5: Execute this command and you are good to go 🙂
I am using 8.0.23 but had multiple issues. Here are the issues and solutions. I followed the mysql docs and was able to do the reset, though I had isues. I have provided my solutions and a sample reset script.
- 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
Chapter 4 Resetting the Root Password: Windows Systems
On Windows, use the following procedure to reset the password for the MySQL ‘root’@’localhost’ account. To change the password for a root account with a different host name part, modify the instructions to use that host name.
Log on to your system as Administrator.
Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager: From the Start menu, select Control Panel , then Administrative Tools , then Services . Find the MySQL service in the list and stop it.
If your server is not running as a service, you may need to use the Task Manager to force it to stop.
Create a text file containing the password-assignment statement on a single line. Replace the password with the password that you want to use.
Save the file. This example assumes that you name the file C:\mysql-init.txt .
Open a console window to get to the command prompt: From the Start menu, select Run , then enter cmd as the command to be run.
Start the MySQL server with the init_file system variable set to name the file (notice that the backslash in the option value is doubled):
If you installed MySQL to a different location, adjust the cd command accordingly.
The server executes the contents of the file named by the init_file system variable at startup, changing the ‘root’@’localhost’ account password.
To have server output to appear in the console window rather than in a log file, add the —console option to the mysqld command.
If you installed MySQL using the MySQL Installation Wizard, you may need to specify a —defaults-file option. For example:
The appropriate —defaults-file setting can be found using the Services Manager: From the Start menu, select Control Panel , then Administrative Tools , then Services . Find the MySQL service in the list, right-click it, and choose the Properties option. The Path to executable field contains the —defaults-file setting.
After the server has started successfully, delete C:\mysql-init.txt .
You should now be able to connect to the MySQL server as root using the new password. Stop the MySQL server and restart it normally. If you run the server as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.
If the ALTER USER statement fails to reset the password, try repeating the procedure using the following statements to modify the user table directly: