Как 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');
Ответ 3
Этот работал у меня, никаких побочных эффектов. https://help.ubuntu.com/community/MysqlPasswordReset
Ответ 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.