Resetting mysql root password windows

Как сбросить пароль 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 пароля:

Читайте также:  Не отображается содержимое включение или отключение компонентов windows

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

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

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

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

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

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.

  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
Читайте также:  Где находятся temporary files windows 10

In the script, I will reset root to New%Password

Сброс пароля root в MySQL

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

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

В статье я буду использовать Ubuntu и MariaDB, но эта инструкция подойдёт и для других дистрибутивов. В командах с systemctl для Mariadb следует использовать mariadb, а для MySQL — mysql или mysqld.

1. Сброс пароля с помощью init-file

При запуске сервиса MySQL можно указать файл, из которого будут выполнены команды sql сразу после запуска. Адрес этого файла указывается опцией —init-file. Но сначала давайте создадим файл, который будет изменять файл нашего пользователя:

UPDATE mysql.user SET password=password(‘новый пароль’) WHERE user=’root’;

Затем остановите сервис, если он запущен:

sudo systemctl stop mysql

sudo systemctl stop mariadb

Теперь осталось выполнить наш файл:

sudo mysqld —user=mysql —init-file=/home/sergiy/init-file.txt —console

Подождите минуту, чтобы всё успело сработать как нужно, а затем остановите этот процесс. В консоли команда сообщит started as proccess и PID процесса, этот PID нам и нужен, чтобы его остановить. Например:

sudo kill -TERM 5356

Далее запустите mysql обычным способом и попробуйте войти со своим новым паролем:

sudo systemctl start mariadb

Сброс пароля с помощью skip-grant-tables

Кроме того, есть и другой способ сбросить пароль MySQL. Мы можем запустить сервис с параметром —skip-grant-tables. В этом режиме программа пропускает загрузку данных о пользователях и тогда вы можете авторизоваться без ввода пароля. Аналогично, сначала нужно остановить сервис:

sudo systemctl stop mariadb

Затем запустите mysql вручную с помощью такой команды:

sudo mysqld —user=mysql —skip-grant-tables

Войдите в консоль управления mysql:

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

Теперь можно сменить пароль для пользователя root:

UPDATE mysql.user SET password=password(‘новый пароль’) WHERE user=’root’;

Затем закройте консоль клиента mysql:

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

sudo kill -TERM 5356

И запустите mysql в нормальном режиме:

sudo systemctl start mariadb

Дальше вы можете авторизоваться от имени суперпользователя по этому паролю:

sudo mysql -u root -p

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

Выводы

В этой статье мы рассмотрели, как выполняется сброс пароля MySQL Ubuntu. Разработчики постоянно что-то меняют в коде сервиса, поэтому в последних версиях команды ALTER USER или SET PASSWORD могут не работать. Поэтому мы используем универсальную команду UPDATE. Надеюсь, эта информация была для вас полезной.

Нет похожих записей

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Читайте также:  Дистрибутив linux для изучения

8 комментариев

Losst, здравствуйте. Извиняюсь за некорректно написанную просьбу (и не в теме), но облазив всю сеть ухитрился проморгать пошаговую настройку убунту на слабом ноутбуке (пользуюсь Тошибой 2005 года выпуска, на Пент4 (дискретный видео), 1,7 гига с 2г озу), хотя в характеристиках пользования линукс указывается развёртывание оси на более меньшей оперативе. Если Вас не затруднит посвятить раздел собственно настройки системы на минимальных характеристиках: сама ось, браузер и минимум программ — офис, плейер, и там по мелочи, без программ требующих особых соответствий ядра и видеокарты..
С уважением.

Поставьте Debian последней версии. Если что-то будет не так с уставкой на Ваш компьютер, то будет видны все проблемы. Debian — это основа UBUNTU. UBUNTU — это производная от Debian. Debian всегда стабилен в отличие от UBUNTU, поверьте .

Андрей, день добрый. Дебиан легче чем Лубунту или нужно искать определённую сборку?

Не понимаю понятия легче или тяжелее. Что это значит — не понимаю!
Многие говорят, что окружение KDE — тяжёлое, о GNOME — лёгкое. Не пойму чем это утверждение обосновано? Пробовал оба окружения. Процессор тратит столько же энергии в обоих окружениях. Нагревается также одинаково. Время загрузки ОС зависит от настройки. Здесь мне вообще не понятно это утверждение. Бред какой-то!

Дебиан стабилен. Убунту сделан на основе Дебиан. В Убунту многое не стабильно работает. В Дебиане, пока пакет (программу) полностью не протестируют, она не попадает в стабильную ветку дистрибутива.
Учиться работать на Linux с основой Дебиан — лучше на самом Дебиан.
Здесь, Вы разберётесь что, да как. Много поймёте для всех вопросов, которые будут возникать с другими дистрибутивами. Далее, мне так кажется, когда разберётесь — Вы станете пользоваться только Debian.
По поводу Вашего компьютера, всегда можно найти кучу информации, как на него установить полностью ОС Дебиан (Яндекс или Гугл Вам в помощь). Официальный сайт Дебиан — https://www.debian.org/
Часто задаваемые вопросы о Debian GNU/Linux — https://www.debian.org/doc/manuals/debian-faq/
Образы для установки — https://www.debian.org/CD/live/index.ru.html
Ещё есть много форумов, где Вы сможете задавать свои вопросы.

Не было ни одного компьютера, на который я бы не поставил Дебиан.
Всё зависит от Вашего хотения. Может у Вас Дебиан сразу поставиться нормально. А, может придётся установить дополнительно пакеты с программами.

—skip-grant-tables прекрасно работает из конфигурационного файла.
вот не надо делать базе kill

А, вот как правильно уставить пароль в Krbf для KDE, чтобы потом проблем не было с доступом — это с удовольствием посмотрел!

Или, как убрать шипение микрофона в Linux при использовании PulseAudio, это когда звук пишешь. То же, хотелось бы узнать правильную информацию!

После установки MySQL 5.7.26 под управлением Ubuntu 18.04, пришло резкое понимание того, что залогиниться в mysql из-под текущего пользователя с учетной записью root не получится, никаких манипуляций с пользователями и правами провернуть не получиться. Потому что только root и только unix socket и никаких паролей.
Для успешного входа и манипуляций с mysql потребуется выполнить sudo mysql -u root или предварительно авторизоваться в системе как root и выполнить mysql -u root.
Честно говоря не вижу смысла менять способ авторизации mysql-пользователя root с сокета на пароль, создавать и вводить его, а потом этот самый пароль ещё и сбрасывать. Существующие настройки довольно безопасны: авторизация root (mysql) возможна только с localhost, прикрыть системный root по SSH (если SSH используется) тоже не проблема.
Лучше настроить дополнительных mysql-пользователей, например для использования phpmyadmin создать пользователя с таким же именем — phpmyadmin — и правами, что и у root, и авторизацией по паролю. После этого можно авторизоваться от имени любого пользователя сиcтемы, зная пароль phpmyadmin, но лучше создать каждому пользователю системы своего пользователя mysql с необходимыми правами, а еще лучше не создавать =).

В базе mysql пароли хранятся в зашифрованном виде, оператор UPDATE просто заменяет данный в таблице, то есть командой update нужно вставлять зашифрованные пароли.

Оцените статью