Как сбросить пароль root для mysql или mariadb

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

Удалённый доступ root-пользователя.

В MySQL пользователь характеризуется двумя параметрами: именем и хостом, с которого он может обращаться, т.е. user@x и user@y — это разные пользователи. Для удобства записи в MySQL используются квантификаторы, например, % на месте хоста означает любую машину кроме локальной.

Если при доступе под рутом с удаленной машины вы получаете ошибку (1045 Acces denied for user ‘root’@’%’), то это может оказаться следствием того, что в настройках по умолчанию удаленный root-пользователь оказался не совсем «рутом», т.е. не обладает всеми привилегиями. Для проверки нужно (под настоящим «рутом») сравнить результат выполнения команд:

show grants for root@localhost;show grants for root@’%’;

И при необходимости добавить недостающие привилегии пользователю root@’%’ с помощью команды GRANT. Если необходимо владеть привилегиями администратора при соединении с удаленной машины, то рекомендуем, в целях безопасности, называть такого пользователя другим именем (не root).

Как изменить пароль пользователя на новых версиях MySQL

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

Чтобы узнать пароль на новых версиях, достаточно в терминале ввести команду, которая запустит MySQL с правами администратора:

sudo mysql

При получении ошибки «access denied» стоит переходить к описанному выше способу – «Сброс пароля root».

Если доступ к консоли получен успешно получен, можно выполнить сброс пароля root в Ubuntu для MySQL, последовательно вводя следующие команды:

UPDATE mysql.user SET authentication_string = PASSWORD('new_password')

WHERE user = 'root';

В поле «new_password» вводится новый пароль для пользователя root.

Для применения изменений нужно перезагрузить таблицы привилегий следующей командой:

FLUSH PRIVILEGES;

В случае успеха будет получен следующий вывод:

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Как восстановить забытый пароль администратора?

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

  1. Перезапустить сервер в режиме —skip-grant-tables
  2. Установить новый пароль администратора
  3. Перезапустить сервер в обычном режиме

Теперь подробнее о каждом пункте. В режиме skip-grant-tables отключена проверка прав доступа и привилегий, иными словами, вы можете подключиться с пустыми логин/пароль и будете обладать при этом всеми возможными привилегиями.

MySQL сервер хранит информацию о привилегиях в таблицах привилегий служебной базы mysql. При старте сервера, содержимое таблиц привилегий загружается в память и в дальнейшей работе используется копия, находящаяся в памяти. Команда flush privileges; обновляет данные о привилегиях, загруженные в память. Таким образом, данная команда отменяет режим skip-grant-table и включает проверку прав доступа и привилегий.

Для запуска сервера в режиме skip-grant-tables проще всего временно добавить строчку skip-grant-tables в my.ini (для ОС Linux файл будет называться my.cnf) в секции

skip-grant-tables
другие параметры

Затем перезапустить сервер.

Дальнейшие действия будут зависеть от используемого вами клиента:

  1. Если ваш клиент не разрывает соединение после выполнения каждой команды как, например, родной клиент mysql, то первым делом выполняем команду flush privileges;, которая загружает в память таблицы грантов. Затем с помощью команд grant или set password назначаем пароль администратору:
    set password for root@localhost=password(‘mypassword’); Данный вариант действий является предпочтительным.
  2. Если ваш клиент разрывает соединение после выполнения каждой команды, например, Query Browser, то после выполнения flush privileges; он будет требовать указать пароль, который мы ещё не успели назначить. Назначить сначала пароль с помощью команд grant или set password не получится, так как в режиме skip-grant-tables их нельзя использовать. (Выше уже указывалось, что flush privileges; отменяет данный режим, поэтому в предыдущем пункте данные команды работают.) Остается единственно возможный способ это напрямую изменять данные в таблице mysql.user

    UPDATE mysql.user SET password=PASSWORD(‘mypassword’) WHERE user=’root’ AND host=’localhost’;

Шаг 3. Введите Mysql без пароля

Затем откройте cmd.exe, запущенный в режиме администратора, войдите в каталог bin в mysql, войдите в MySQL без пароля учетной записи, а затем сбросьте пароль пользователя root системы баз данных на admin.

  1. Введите следующую командную строку, чтобы войти в MySQL без пароля учетной записи.
  1. Обновите системные разрешения, введите
  1. Сбросьте пароль, установите пароль для root @ localhost = «новый пароль»; В качестве примера возьмем установку нового пароля admin, введите

Наконец-то вы закончили, успешно сбросили пароль!

Ссылка на ссылку

  1. https://blog.csdn.net/qq_43342301/article/details/91288891
  2. https://www.cnblogs.com/Lints/p/11506902.html

Как поменять пароль root в MySQL

Если пароль root ИЗВЕСТЕН

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

В том случае, если вы пользуетесь каким-либо веб-интерфейсом, например, phpMyAdmin, то тогда вы можете пропустить пункт 1 и сразу же выполнить запрос для нужной версии MySQL (пункт 2) прямо из интерфейса phpMyAdmin (вкладка SQL).

1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):

2) Меняем пароль для пользователя root:

Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8…)

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3…)

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

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

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

3) Перезагружаем привилегии, чтобы изменения вступили в силу:

4) Для выхода из консоли MySQL сервера выполняем команду выхода:

После этого, пароль должен поменяться.

Если пароль root НЕ ИЗВЕСТЕН

Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:

1) Останавливаем mysqld:

2) Проверяем, что нет запущенных процессов mysqld:

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

3) Создаем каталог для запуска mysqld в safe режиме из консоли

4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)

5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.

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

6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:

7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded», а нам это не нужно:

Вывод в результате выполнения данной команды должен быть примерно таким:

8) Перезагружаем привилегии:

9) Меняем пароль для нужного пользователя, в нашем случае это root:

Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8…)

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3…)

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

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

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

9) После чего, вводим команду exit для отключения:

10) Выключаем запущенный в ручном режиме Mysqld сервер:

Если все пройдет успешно, то вывод должен быть примерно таким:

Если же команда не сработала и вы получаете вот такую (или любую другую) ошибку:

То можно принудительно завершить процесс с помощью следующей команды:

11) Проверяем, что нет запущенных процессов mysqld:

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

12) Запускаем Mysql-server в нормальном режиме:

И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.

Как восстановить root-пользователя?

Если root-пользователь (пользователь, обладающий всеми возможными прривилегиями, как правило имеет имя root) был по неосторожности удален, то последовательность действий аналогична предыдущему разделу за исключением того, что вместо назначения пароля необходимо будет создать root-пользователя. Т.е

в режиме skip-grant-tables в зависимости от используемого вами клиента действуем одним из нижеследующих способов:

flush privileges;Затем добавляем root-пользователя с помощью команды grant

grant all ON *.* TO `root`@`localhost` identified by ‘mypassword’ with grant option;

Создаем root-пользователя путем прямого добавления записи в таблицу mysql.user

Обратите внимание, что структура таблицы mysql.user в разных версиях различна. Перед добавлением изучите её с помощью команд SHOW CREATE TABLE или DESCRIBE

Например, для версии 5.1.21-beta-community добавление root-пользователя производится следующей командой:
INSERT INTO mysql.user(Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,
Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,
Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,
Repl_slave_priv,Repl_client_priv,Create_view_priv,Show_view_priv,Create_routine_priv,
Alter_routine_priv,Create_user_priv,Event_priv,Trigger_priv,ssl_type,ssl_cipher,x509_issuer,
x509_subject,max_questions,max_updates,max_connections,max_user_connections)VALUES(‘localhost’,’root’,password(‘mypassword’),’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,’Y’,»,»,»,»,,,,);

2: Перезапуск сервера

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

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

Настройка MariaDB для запуска без привилегий

Чтобы запустить сервер MariaDB без привилегий, нужно использовать юнит-файл systemd для установки дополнительных параметров демонов сервера MariaDB.

Выполните следующую команду, которая устанавливает переменную среды MYSQLD_OPTS, используемую MariaDB при запуске. Параметры -skip-grant-tables и -skip-network указывают, что MariaDB запускается без таблиц привилегий и сетевых функций:

Теперь запустите MariaDB:

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых переменных.

Чтобы убедиться, что сервер запущен, введите команду:

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

Вы увидите командную строку оболочки MariaDB:

Теперь переходите к разделу 3.

Настройка MySQL для запуска без привилегий

Чтобы запустить сервер MySQL без таблиц привилегий, нужно изменить конфигурацию systemd MySQL и передать серверу дополнительные параметры командной строки при запуске.

Для этого выполните следующую команду:

Эта команда откроет новый файл в редакторе nano, который можно использовать для управления переопределений MySQL. Они изменяют параметры сервиса MySQL по умолчанию. Этот файл будет пустым, в него нужно вставить следующий контент:

Первый оператор ExecStart очищает значение по умолчанию, а второй предоставляет systemd новую команду запуска с параметрами для отключения загрузки таблиц привилегий и сетевых функций.

Нажмите CTRL-Х, чтобы выйти из файла, затем Y, чтобы сохранить изменения, и ENTER, чтобы подтвердить имя файла.

Перезагрузите конфигурацию systemd, чтобы применить эти изменения:

Запустите сервер MySQL:

Команда не отображает никакого вывода, но она перезапустит сервер БД с учетом новых конфигураций.

Теперь можно подключиться к БД как пользователь root без пароля:

Вы увидите командную строку оболочки MySQL:

Теперь можно сбросить утраченный пароль.

MYSQL 8.0+ Как забыть или изменить пароль

y http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>le=»margin-bottom:5px;»>Теги:  Принцип компиляции

MYSQL был установлен давно. Теперь, поскольку мне нужно использовать MYSQL, но я забыл пароль, я поискал его в Интернете в час ночи. Большинство методов в Интернете — это добавление –skip-grant-tables в My.ini или My_default.ini Метод достижения пропустить пароль Mysql для подключения к базе данных и изменить пароль. Ни один из этих методов у меня не работает. Наконец, объединив два блога, я нашелнадежныйМетод записывается на тот случай, если вы забудете пароль позже.

Измени пароль

Запомните исходный парольВ случае изменения нового пароля: После входа в базу данных введите

как показано на картинке:

Измените пароль пользователя root @ localhost на admin:

Шаг 1. Отключите службу mysql.

  1. Откройте cmd от имени администратора, переключите каталог с диска C по умолчанию на каталог установки mysqld.exe, мой каталог установки по умолчанию: C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin
  1. cmd input команда: net stop mysql, обязательно закройте службу mysql

Шаг 2. Пропустите проверку пароля Mysql

После закрытия службы Mysql продолжайте работу в каталоге C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin. ввод

После ввода этой строки кода я успешно пропустил вход в систему с паролем Mysql

Шаг 3. Введите Mysql без пароля

Затем откройте cmd.exe, запущенный в режиме администратора, войдите в каталог bin в mysql, войдите в MySQL без пароля учетной записи, а затем сбросьте пароль пользователя root системы баз данных на admin.

  1. Введите следующую командную строку, чтобы войти в MySQL без пароля учетной записи.
  1. Обновите системные разрешения, введите
  1. Сбросьте пароль, установите пароль для root @ localhost = «новый пароль»; В качестве примера возьмем установку нового пароля admin, введите

Наконец-то вы закончили, успешно сбросили пароль!

Ссылка на ссылку

  1. https://blog.csdn.net/qq_43342301/article/details/91288891
  2. https://www.cnblogs.com/Lints/p/11506902.html

Интеллектуальная рекомендация

Глава первая: Причина В большинстве анекдотов в Интернете говорится, что программисты относительно тупые, плохие слова и в основном мужчины. Я один из тысяч программистов. Обычно я не знаю, как правил…

Всегда был спрос, надеясь увидеть в реальном времени рейтинг моего сайта в Baidu Я использовал некоторые инструменты, либо медленный ответ, либо результаты не точные или в режиме реального времени Поэ…

Алгоритм обнаружения характерных точек Обнаружение угла Харриса                                 Обнаружение функции SIFT…

По просьбе пользователей сети напишите пример использования Selenium Grid для управления несколькими системами и несколькими браузерами для параллельного выполнения тестов. Поскольку у меня здесь две …

Эта проблема возникает, когда используется openrowset. Просто выполните следующий код:           http://www.cnblogs.com/wayne-ivan/archive/2008/01/07/1028759.html…

Вам также может понравиться

В проекте .net я часто сталкиваюсь с необходимостью автоматически делать скриншот кадра после загрузки видео. Вот метод использования ffmpeg для автоматического создания скриншота Сначала загрузите фа…

Ленивая загрузка не удалась, потому что @Responsebobode JSON преобразует Getroles по умолчанию, которая заканчивается пользователем, поэтому ленивая загрузка недействительна. Если вы предоставляете TO…

virtualenv установка Основное использование Создайте виртуальную среду для проекта: virtualenv venv создаст папку в текущем каталоге, содержащую исполняемые файлы Python и копию библиотеки pip, чтобы …

Java.io.fileNotfoundException: файл: \ d: \ Code \ xml-load \ target \ xx.jar! \ Xxx (имя файла, имя каталога или синтаксис громкости неверно.) 1. При использовании Spring Boot для применения к JAR не…

Создание пользователя и выдача прав

Рассмотрим два варианта создания учетных записей в СУБД MySQL/MariaDB.

1. С помощью команды GRANT.

Данный метод позволяет одной командой сразу и создать пользователя, и дать ему права. Но, начиная с MySQL 8, она возвращает ошибку — разработчики запретили ее использование и сначала требуется создать пользователя (с помощью ).

Синтаксис:

> GRANT <тип привилегий> ON <объект> TO <пользователь> <дополнительные опции>;

Например, эта команда предоставляет права доступа пользователю и, если его не существует, создает его:

> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

Описание команды:

ALL PRIVILEGES: предоставляет полные права на использование данных.*.* : права предоставляются на все базы и все таблицы.dbuser: имя учетной записи.localhost: доступ для учетной записи будет предоставлен только с локального компьютера.password: пароль, который будет задан пользователю.WITH GRANT OPTION: будут предоставлены дополнительные права на изменение структуры баз и таблиц.

2. С помощью команды CREATE USER.

Данный метод является универсальным. Он позволяет создать пользователя в системе без каких либо прав. После права назначаются командой GRANT.

Пример создания учетной записи:

> CREATE USER ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;

После можно задать права командой:

> GRANT ALL PRIVILEGES ON *.* TO ‘dbuser’@’localhost’;

Возможные ошибки

1. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Причина: в новых версиях по умолчанию активированы политики на проверку сложности пароля. Их список можно посмотреть командой:

> SHOW VARIABLES LIKE ‘validate_password%’;

Вывод команды будет, примерно, следующим:

+—————————————+———+
| Variable_name | Value |
+—————————————+———+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+—————————————+———+

* где:

  • validate_password_check_user_name — пароль не должен совпадать с именем пользователя.
  • validate_password_dictionary_file — использовать специальный файл со словарем запрещенных паролей.
  • validate_password_length — минимальная длина пароля.
  • validate_password_mixed_case_count — сколько, как минимум, должно быть символов в малой и большой раскладках.
  • validate_password_number_count — какое минимальное количество цифр использовать в пароле.
  • validate_password_policy — позволяет задать определенный набор правил. Доступны значения LOW (или 0), MEDIUM (1), STRONG (2).
  • validate_password_special_char_count — минимальное количество специальных символов (например, # или !).

Решение:

  1. Привести пароль в соответствие требованиям политик.
  2. Отключить политику, которая не позволяет использовать желаемый пароль. Например, чтобы отключить требование использовать цифры вводим:

> SET GLOBAL validate_password_number_count = 0;

2. ERROR 1728 (HY000): Cannot load from mysql.tables_priv. The table is probably corrupted

Причина: система считает, что таблица tables_priv в базе mysql неисправна.

Решение: чаще всего, ошибка возникает при переносе баз с одного сервера в другой. Если версии СУБД разные, таблица tables_priv может работать со сбоями. Для исправления необходимо выполнить команду mysql_upgrade — она проверяет все таблицы на совместимость с текущей версией MySQL/MariaDB и вносит исправления. Применение команды:

mysql_upgrade -u root -p

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: