Как reset пароль пользователя mysql?

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

# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO)

У меня есть поиск в сети раньше, и даже техника:

UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;

не работает, или я не понял, как это работает.

Я на FreeBSD 8.1, моя версия PhpMyadmin равна 2.11.

Заранее благодарю за ваши ответы.

Ответ 1

Я кратко изложил свое решение здесь: http://snippets.dzone.com/posts/show/13267

sudo stop mysql
sudo mysqld --skip-grant-tables --skip-networking

mysql
mysql> update mysql.user set password = password('your_new_password') where user = 'root';
mysql> flush privileges;
mysql> exit;
sudo mysqladmin shutdown
sudo start mysql

Ответ 2

Для mysql 5.7.16 или более поздней версии я нашел this (from mysql.com) в качестве рабочего решения. Ниже приведены некоторые моменты, которые отличаются от предыдущих более старых версий.

1) Я использовал команду ниже для запуска mysql в безопасном режиме в соответствии с некоторыми другими ссылками, которые на самом деле отлично работали для меня (mysql 5.7.16 ubuntu 16.04).

mysqld_safe --skip-grant-tables --skip-networking

2) Нижеследующее обновление stmt НЕ работает для более поздней версии (т.е. 5.7 и выше)

-- NOT Working for 5.7 and later
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;

ВМЕСТО используется ниже для 5.7.6 и более поздних версий

UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

ИЛИ пользователя ниже для версий 5.7.5 или более ранних версий.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

Ответ 4

Пожалуйста, следуйте инструкциям из приведенной ниже ссылки на reset ваш пароль root. Вы должны сделать это из-за пределов mysql.

Сброс пароля MySql

Забыть пароль MySQL может стать настоящей головной болью для вас. Ниже перечислены некоторые простые шаги, которые вы можете выполнить для восстановления пароля MySql в Windows Остановить MySql

Вы должны остановить службу MySql, прежде чем продолжить. В среде Windows перейдите на вкладку "Диспетчер задач" и "Сервис", найдите MySQL и остановите ее. Write Sql для изменения пароля

Все, что вам нужно сделать, это создать текстовый файл и поместить в него две строки. UPDATE mysql.user SET Password = PASSWORD ('MyNewPass') WHERE User = 'root'; ПРИВИЛЕГИИ ФЛЮЗА; Сохраните его под диском C:\и дайте ему имя "mysql-init.txt" Время перезапуска MySQL по своему усмотрению.

Теперь пришло время перезапустить MySQl, который вы остановили раньше, но на этот раз из командной строки. C: > C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt Завершение!

Теперь вы можете войти в систему с помощью своего нового пароля. Когда вы закончите удаление файла, созданного на предыдущем этапе.

Также есть ссылка (http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password), где я объяснил одно и то же.

Надеюсь, это поможет..:)

Ответ 5

Ответ для XAMPP на Windows:

  • Отредактируйте C:\xampp\mysql\bin\my.ini и вставьте нижегородные таблицы ниже [mysqld]
  • Перезапустить MySQL из интерфейса панели управления
  • В окне phpMyAdmin выберите вкладку SQL с верхней панели. Это откроет вкладку SQL, где мы сможем запускать SQL-запросы. Теперь введите следующий текст в текстовую область и нажмите Go

UPDATE mysql.user SET Пароль = ПАРОЛЬ ('пароль') ГДЕ Пользователь = 'root'; ПРИВИЛЕГИИ FLUSH;

  • Удалите таблицы пропуска-пропуска в файле my.ini
  • Перезапустить MySQL из интерфейса панели управления

СДЕЛАНО!

Имейте в виду, что пароль пользователя mysql root не должен совпадать с паролем для phpmyadmin.