Доступ запрещен для пользователя 'root' @ 'localhost' (используется пароль: YES), когда строка аутентификации верна - PullRequest
0 голосов
/ 05 марта 2019

Я застрял на этом в течение нескольких дней.У меня есть установка варева mysql.Что работает для меня, чтобы войти в mysql ..

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

$(brew --prefix mysql)/bin/mysqld_safe --skip-grant-tables --skip-networking

mysql -u root // or just mysql

Так что теперь я нахожусь. Я успешно изменил пароль для «root» @ «localhost» согласно результатам этого запроса ..

mysql> select host, user, authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | pissword                                                               |
+-----------+------------------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

Однако я все еще не могу получить доступ к mysql после выхода из этого процесса и нормального запуска сервера ..

mysqladmin -u root shutdown

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

mysql -u root -ppissword

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Может быть, я могу проверить журналы или что-то, чего я не знаю.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 05 марта 2019

Я думаю, что проблема в том, как вы сменили пароль.Правильный синтаксис для этого:

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

Не забудьте сбросить привилегии после этого:

FLUSH PRIVILEGES;

Дело в том, что в столбце authentication_string у вас будет хешпароля, а не сырого пароля.Это то, что делает функция PASSWORD.

...