FAQ по восстановлению забытого пароля администратора в MySQL


Оглавление (нажмите, чтобы открыть):

MySQL: Восстановление пароля root

В процессе перенос этого блога на другой сервер. Бекап с файлами залит, архив распакован. Осталось всего чуть-чуть: создать базу на MySQL и скормить ей дамп.

— Ага: Не тут то было. Я кажется не помню root пароль к базе — пришло в голову: Пароль я действительно забыл (ну с кем не бывает?), а тот человечек, который его вероятнее всего помнит, уже скорее всего отдыхает и звонить ему в столь поздний час как-то невежливо.

Когда-то давно, когда я только только узнал, что такое сервер базы данных MySQL приключилась аналогичная история. Тогда я проблему решил достаточно быстро. Я просто прибил полностью папку с системной базой mysql:

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

Останавливаем сервер MySQL:

Запускаем mysqld с параметром -skip-grant-tables, указав стартовать от имени пользователя mysql (или от другого непривелигерованного юзера — но никак не от root’а), иначе mysql сославшись на пункт Security в мануале, пошлет Вас в сад:

Все. Дальше подключаемся к серверу, говорим use mysql, и рихтуем таблицу user, очищая в ней поле Password для пользователя root@localhost. Пароль снесли. Перезапускайте mysql сервер (у меня иначе как через killall -9 mysqld перезапуститься не получилось:) и входите пользователем root@localhost, устанавливайте такой пароль, который Вы больше не забудете.

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

Запускаем с параметром:

Отправляем в фон. Для этого нажимаем Ctrl-z и выполняем команду bg

Заходим без пароля делаем команды:

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

1. Делаем DROP DATABASE `mysql`; тем самым убив всех юзеров и все права. Можно наверное и без этого, но второй шаг у меня с уже готовой таблицей не заработал (наверное из-за разных версий mysql до и после переноса БД mysql).
2. Запускаем из консоли mysql_install_db который эту самую табличку создаёт.
3. Заходим mysql -u root и выполняем

4. Рестартуем: service mysql restart (если не получается, то killall mysqld && service mysql start)
5. PROFIT!

Как сбросить пароль 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 будет успешным.

Мастер Йода рекомендует:  Как работают демоны, процесс Init и как у процессов рождаются потомки — изучаем основы Unix

Описанная выше процедура одинаково подходит как для сервера MySql, так и для сервера MariaDB, с тем лишь исключением, что название сервисов может быть не mysql (mysqld), а mariadb.


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

Apr 19, 2020 06:25 · 308 words · 2 minute read mysql

В интернете есть множество примеров (в том числе и в официальной документации) сброса пароля суперпользователя в базе данных MySQL. Но что делать, если случайно удалил пользователя root@localhost в БД MySQL — давайте разберемся!

Еще раз акцентирую внимание на том факте, что нужно не просто сменить пароль пользователю root — правильный пароль известен, но подключиться к БД MySQL не получается именно потому что удален пользователь root@localhost и ранее подключение было разрешено только с хоста localhost (никаких root@% , root@127.0.0.1 и т.д. нет).

В данном примере используется следующая версия MySQL:

В конфигурационном файле my.cnf в секции [mysqld] добавляем следующую опцию:

Перезапускаем MySQL командой:

Подключаемся к БД, введя в консоли mysql (без пароля) и нажав клавишу Enter.

Для восстановления удаленного пользователя root@localhost выполняем следующий запрос:

Установим пароль только что созданному пользователю:

После проделанных действий выходим из MySQL, удаляем (или комментируем) ранее добавленное значение skip-grant-tables в конфигурационном файле my.cnf и еще раз перезапускаем сервис:

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

Сброс пароля 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.

Помните, что новый пароль должен быть сложным и уникальным.

А как динамически создавать пользователя и пароля? или как динамически задать пароль пользователю root? Напрмер, у меня есть скрипт установки БД и сразу в нем я задаю нужные мне настройки, все propt’ы для меня преграды

MySQL. Восстановление пароля при физическом доступе к серверу

И да, будет происходить не восстановление, а смена пароля. Но доступ вы всетаки восстановите!

Вариант первый

Запустим mysqld без применения привелегий и исправим пароль для пользователя root.

Второй вариант

Если не получается по вервому варианту получить доступ к mysql, то мне помогает вариант с загрузкой init-скрипта, в котором будет происходит смена пароля для пользователя root.

Останавливаем MySQL-сервер и создаем файл «

Со следующим содержимым:

После чего запускаем mysqld_safe, прерываем его и запускаем MySQL-сервер:

Установка, изменение и сброс пароля root в MySQL

Это руководство объясняет, каким образом можно установить, измененить или сбросить (если вы забыли пароль) рутовый пароль в MySQL. Снова и снова я наблюдаю одну и ту же картину:

mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’.

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

mysqladmin -команда, при помощи которой меняется пароль root в MySQL


Метод 1. Установка пароля root в первый раз.

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

mysqladmin -u root password newpass

где newpass будет пароль который вы устанавливаете.

Для изменения (обновления) пароля root воспользуйтесь следующей командой:

mysqladmin -u root -p oldpassword newpass

где oldpassword — ваш старый пароль, а newpassword соотвественно новый. Если же вы в ответ получили следующее сообщение:

mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’

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

Изменения пароля MySQL для других пользователей.

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

mysqladmin -u user-name -p oldpassword newpass

где user-name — имя пользователя для которого вы меняете пароль.

Метод 2 — Обновление или изменение пароля.

MySQL хранит имена пользователей и пароли в таблице пользователей внутри базы данных. Вы можете обновить пароль используя следующий метод:

1. Залогиньтесь в MySQL и введите следующую команду:

2. Начните работу с базой данных. В качестве приглашения для ввода команд вначале строки у вас должно быть mysql>

3. Смените пароль пользователя

mysql> update user set password=PASSWORD(«newpass») where User=’ENTER-USER-NAME-HERE’;


4. Перегрузите привелегии и отлогиньтесь

Этот метод применим в случае использования на вашем сервере PHP и скриптов Perl.

Восстановление пароля root в MySQL.

Вы можете восстановить пароль от баз данных MySQL если повторите следующие 5 шагов:

  • Остановите демон MySQL.
  • Запустите демон MySQL (mysqld) с опцией —skip-grant-tables, т.к. в этом случае пароль не запрашивается.
  • Подключитесь к серверу MySQL c root-привелегиями
  • Введите новый пароль.
  • Выйдите и перегрузите демон MySQL.

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

Мастер Йода рекомендует:  Изучаем Angular видео, подкасты и полезные ссылки

1. Останавливаем службу MySQL:

/etc/init.d/mysql stop
Stopping MySQL database server: mysqld.

2. Запускаем службу с опцией —skip-grant-tables

Должен быть следующий вывод:

[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started

3. Подключаемся с серверу MySQL при помощи клиента mysql:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>

4. Вводим новый пароль для root:

mysql> use mysql;
mysql> update user set password=PASSWORD(«NEW-ROOT-PASSWORD») where User=’root’;
mysql> flush privileges;
mysql> quit

5. Останавливаем сервер MySQL:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe —skip-grant-table

Запускаем MySQL-сервер и логинимся с новым паролем:


Забыл или потерял пароль на mysql?

Для смены root пароля на вход MySQL Необходимо сделать следующие:

1) Подключаемся к сервером по ssh.

2) Останавливаем MySQL:

/etc/init.d/mysqld stop или service mysqld stop

3) Запускаем MySQL в безопасном режиме:

/usr/bin/mysqld_safe —skip-grant-tables —user=root &

4) Подключаемся к MySQL:

5) Выполняем запрос SQL:

update user set password=PASSWORD(‘Новый пароль’) where user=’root’ and host=’localhost’;

FAQ по восстановлению забытого пароля администратора в MySQL

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

Восстановление пароля администратора zabbix и пароля root в MySQL

Для того, чтобы восстановить пароль администратора zabbix и пароль пользователя root в MySQL открываем командную строку и выполняем команды под root (или используем sudo).

Производим поиск конфигурационного файла zabbix и смотрим к какой базе данных идёт коннект

Найденный конфигурационный файл открываем с помощью nano (или используем vi, mc или любой текстовый редактор).

Находим имя базы данных для zabbix

Подключаемся к серверу MySQL

Воодим пароль root для MySQL. Если этот пароль не помним, то придётся его сбросить.


Восстановление пароля root в MySQL

1. Останавливаем службу mysql

2. Запускаем службу mysql без использования grant tables в фоновом режиме

6. Отключаемся от сервера MySQL

7. Перезапускаем сервер MySQL

Сброс пароля root в MySQL осуществлён, пора переходить к восстановлению пароля администратора zabbix.

Сброс пароля администратора zabbix

Подключаемся к серверу MySQL под пользователем root с новым паролем

Вводим пароль root и затем подключаемся к базе данных zabbix

Устанавливаем новый пароль для пользователя «Admin«

Теперь можно зайти в веб-интерфейс zabbix под пользователем «Admin» уже под новым паролем.

FAQ по восстановлению забытого пароля администратора в MySQL

Разберемся, что делать, если вы забыли root-пароль MySQL, без которого невозможно попасть в phpMyAdmin. Для начала подключитесь к серверу по SSH и остановите MySQL:

service mysqld stop

Откройте файл /etc/my.cnf в режиме редактирования:

nano /etc/my.cnf

Добавьте строку в блоке [mysqld]:

skip-grant-tables

Сохраните изменения в файле и запустите MySQL:


service mysqld start

Подключитесь к базе данных MySQL под пользователем root:

mysql -u root mysql

Запустите команду, где вместо ВАШ ПАРОЛЬ будет указан новый пароль:

UPDATE user SET Password=PASSWORD(‘ВАШ ПАРОЛЬ’) WHERE User=’root’; FLUSH PRIVILEGES;

Снова откройте в режиме редактирования файл /etc/my.cnf и удалите строку skip-grant-tables. Перезапустите MySQL:

service mysqld restart

Теперь для входа в phpMyAdmin используйте новый пароль и старый логин.

linux-notes.org

Восстановление или сброс пароля root в MySQL

Для восстановления пароля от сервера базы данных MySQL выполните следующие пять простых шагов .

Шаг 1:
Остановите службу MySQL:

Шаг 2:
Запустите сервер MySQL без каких-либо паролей:

Шаг 3:
Подключитесь к серверу MySQL, используя клиент MySQL:

Шаг 4:
Настройка нового MySQL пароля суперпользователя, для этого выполните команды ниже:

Шаг 5:
Остановите сервер MySQL :

Шаг 6:
Запустите MySQL сервер и проверить его работоспособность с новым паролем:

Восстановление или сброс пароля root в MySQL окончен.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Добавить комментарий