Смена пароля root в MySQL - PullRequest
       78

Смена пароля root в MySQL

48 голосов
/ 23 сентября 2011

Я пытался сбросить мой корневой пароль MySQL. Я запустил mysqld_safe --skip-grant-tables, обновил пароль root и проверил пользовательскую таблицу, чтобы убедиться, что она там есть. После перезапуска демона mysql я попытался войти в систему с новым паролем root, который я только что установил, и по-прежнему получаю доступ в доступе из-за ошибок пользователя root. Я также попытался полностью удалить и переустановить mysql (включая удаление файла my.cnf), но все равно не повезло. У кого-нибудь есть предложения по поводу того, что я могу делать дальше?

Заранее спасибо

Ответы [ 19 ]

68 голосов
/ 16 февраля 2014

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

46 голосов
/ 07 августа 2013

смотри на это из справочника MySQL:

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

Посмотрите эту страницу для получения дополнительной информации: Сброс пароля root: Unix Systems

18 голосов
/ 25 сентября 2011

Нашли это! Я забыл хешировать пароль, когда менял его. Я использовал этот запрос, чтобы решить мою проблему:

update user set password=PASSWORD('NEW PASSWORD') where user='root';

Я забыл PASSWORD('NEW PASSWORD') и просто ввел новый пароль в виде обычного текста

11 голосов
/ 20 апреля 2017

Это обновленный ответ для WAMP v3.0.6 и выше

> UPDATE mysql.user 
> SET authentication_string=PASSWORD('MyNewPass') 
> WHERE user='root';

>FLUSH PRIVILEGES;

В MySQL версии 5.7.x больше нет поля пароля в таблице mysql.Он был заменен строкой authentication_string.

10 голосов
/ 27 февраля 2017

Пожалуйста, выполните следующие шаги.

step1. остановите mysql

step2. sudo mysqld_safe --skip-grant-tables

step3. mysql -u root

step4. use mysql;

step5. show tables;

step6. describe user;

step7. update user set authentication_string=password('1111') where user='root';

логин с паролем 1111

5 голосов
/ 29 декабря 2018
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

Вы можете найти Сброс пароля root в документации MySQL.

4 голосов
/ 10 мая 2019

Я также искал и, возможно, некоторые ответы подходят для некоторых ситуаций,

Моя ситуация - Mysql 5.7 в системе Ubuntu 18.04.2 LTS:

(получить права root)

$ sudo bash

(установить пароль для пользователя root db + внедрить защиту поэтапно)

# mysql_secure_installation

(предоставить доступ пользователю root через пароль вместо сокета)

(+ edit: очевидно, вам нужно снова установить пароль?)

(не устанавливайте его как 'mySecretPassword' !!!)

# mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); 
mysql> FLUSH PRIVILEGES;
mysql> exit;

# service mysql restart

Большое спасибо zetacu erich ) за этот превосходный ответ (после поиска пару часов ...)

Наслаждайтесь: -D

S.

4 голосов
/ 19 февраля 2015

Вы должны сбросить пароль!шаги для Mac OSX (проверено и работает) и Ubuntu

Stop MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop

Запустите его в безопасном режиме:

$ sudo mysqld_safe --skip-grant-tables

(над строкой находится вся команда)

Это будет текущая команда до завершения процесса, поэтому откройте другое окно оболочки / терминала и войдите без пароля:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

Запустите MySQL

sudo /usr/local/mysql/support-files/mysql.server start

ваш новый пароль - «пароль».

2 голосов
/ 23 сентября 2011

частая ошибка, с которой я сталкиваюсь время от времени, это то, что я забыл опцию -p, так что вы уверены, что использовали:

mysql -u root -p
2 голосов
/ 14 мая 2018

В MySQL 5.7 пароль заменяется на «authentication_string».

использование

update user set authentication_string=password('myfavpassword') where user='root';
...