MySQL - ОШИБКА 1045 - Доступ запрещен
В некотором роде мне удалось получить эту ошибку, когда я пытаюсь получить доступ к MySQL через командную строку:
[[email protected] ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Я попытался сбросить пароль без ведома, используя этот HowTo.
Я удалил mysql completeley и переустановил, но меня все еще спрашивают пароль. Я понятия не имею, почему это так!
Может кто-нибудь помочь мне получить установку MySQL по умолчанию.
Окружающая среда
Fedora Core 10, полный корневой доступ, установлен Apache и PHP
Спасибо за любую помощь!
ИЗМЕНИТЬ
Для всех тех, кто хотел бы сохранить себя через несколько часов после "кашля в крови" - когда вы удаляете MySQl, полностью удаляйте все, что осталось. Если вы этого не сделаете, это никогда не будет установкой FRESH.
Ответы
Ответ 1
Если вы действительно установили пароль root, и вы только что потеряли/забыли его:
- Остановить MySQL
-
Перезапустите его вручную с помощью опции skip-grant-tables: mysqld_safe --skip-grant-tables
-
Теперь откройте новое окно терминала и запустите клиент MySQL: mysql -u root
-
Reset пароль root вручную с помощью этой команды MySQL: UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Если вы используете MySQL 5.7 (проверьте с помощью mysql -version в терминале), то команда:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
-
Выполните сброс привилегий с помощью этой команды MySQL: FLUSH PRIVILEGES;
От http://www.tech-faq.com/reset-mysql-password.shtml
(Возможно, это не то, что вам нужно, Abs, но я полагаю, что это может быть полезно для людей, которые спотыкаются об этом вопросе в будущем)
Ответ 2
Попробуйте подключиться без пароля:
mysql -u root
Я считаю, что начальным значением по умолчанию является пароль для учетной записи root (который, очевидно, должен быть изменен как можно скорее).
Ответ 3
используйте эту команду, чтобы проверить возможный вывод
mysql> select user,host,password from mysql.user;
выход
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
- В этом пользователе администратор не будет разрешено войти с другого хоста, хотя вы дали разрешение. причина в том, что пользователь admin не идентифицирован ни одним паролем.
-
Предоставьте пользователю admin пароль еще раз с помощью команды GRANT.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
затем проверьте ГРАНТ-ЛИСТ, выход которого будет как его
mysql> select user,host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user | host | password |
+-------+-----------------------+-------------------------------------------+
| root | localhost | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root | 127.0.0.1 | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | % | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
если необходимому пользователю, например, пользователю 'admin', необходимо разрешить вход в систему, используйте команду Once GRANT и выполните команду.
Теперь пользователю должно быть разрешено войти в систему.
Ответ 4
Текущий пароль root должен быть пустым.
Затем под "новым корневым паролем" введите свой пароль и подтвердите.
Ответ 5
Для входа в PHPMyAdmin попробуйте это обходное решение PHPMyAdmin Ошибка MySQL 1045 - Доступ запрещен для пользователя root @localhost (с использованием пароля: НЕТ)
Ответ 6
- Перейдите в консоль mysql
- Введите использование mysql;
- UPDATE mysql.user SET Password = PASSWORD ('') WHERE Пользователь = 'root'
ПРИВИЛЕГИИ ФЛЮЗА;
Выход
PASSWORD ('') должен быть пуст
- Затем перейдите в wamp/apps/phpmyadmin../config.inc.php
- Найти $cfg ['Servers'] ['$ I'] ['password'] = 'root';
- Замените ['password'] на ['ваш старый пароль']
- Сохранить файл
- Перезапустите все службы и перейдите в localhost/phpmyadmin
Ответ 7
Я не мог подключиться к MySql Administrator. Я исправил его, создав другого пользователя и назначив все разрешения.
Я вошел в систему с этим новым пользователем и работал.
Ответ 8
У меня была та же ошибка, но это было, потому что password_expired
был установлен в Y
Вы можете исправить эту проблему, следуя тому же подходу, что и текущий принятый ответ, но вместо этого выполнив запрос MySQL:
UPDATE mysql.user SET password_expired = 'N' WHERE User='root';