Что делать?
Во-первых, нужно убедиться, что вы используете правильные имя пользователя и пароль. Для этого нужно подключиться к MySQL с правами администратора (если ошибка 1045 не дает такой возможности, то нужно
перезапустить сервер MySQL в режиме --skip-grant-tables ), посмотреть содержимое таблицы user служебной базы mysql, в которой хранится информация о пользователях, и при необходимости отредактировать её.
Пример.
SELECT user,host,password FROM mysql.user;
+ ---------------+-----------------+-------------------------------------------+
| user | host | password |
+ ---------------+-----------------+-------------------------------------------+
| root | house-f26710394 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| aa | localhost | *196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| test | localhost | |
| new_user | % | |
| | % | *D7D6F58029EDE62070BA204436DE23AC54D8BD8A |
| new
| % | *ADD102DFD6933E93BCAD95E311360EC45494AA6E |
| root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+ ---------------+-----------------+-------------------------------------------+
Если изначально была ошибка:
ERROR 1045 ( 28000) : Access denied for user 'root' Удалён ( using password: YES )
значит вы указывали при подключении неверный пароль, так как пользователь root
существует. Сам пароль храниться в зашифрованном виде и его нельзя узнать, можно лишь задать новый
SET PASSWORD FOR rootУдалён ( 'новый пароль' ) ;
ERROR 1045 ( 28000) : Access denied for user 'ODBC' Удалён ( using password: YES )
в данном случае в таблице привилегий отсутствует пользователь 'ODBC'Удалён Его нужно создать, используя команды GRANT, CREATE USER и SET PASSWORD.
Экзотический пример. Устанавливаете новый пароль для root
в режиме --skip-grant-tables, однако после перезагрузки сервера по прежнему возникает ошибка при подключении через консольный клиент:
ERROR 1045 ( 28000) : Access denied for user 'root' Удалён ( using password: YES ) Оказалось, что было установлено два сервера MySQL, настроенных на один порт.
phpmyadmin
При открытии в браузере phpmyadmin получаете сообщение:
Error
MySQL said:
#1045 - Access denied for user 'root'Удалён (using password: NO)
Connection for controluser as
defined in your configuration failed.
phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.
Ни логина, ни пароля вы не вводили, да и пхпадмин их нигде требовал, сразу выдавая сообщение об ошибке. Причина в том, что данные для авторизации берутся из конфигурационного файла config.inc.php Необходимо заменить в нем строчки
$cfg [ 'Servers' ][ $i ][ 'user' ] =
'root' ; // MySQL user
$cfg [ 'Servers' ][ $i ][ 'password' ] = ''; // MySQL password (only needed
на
$cfg [ 'Servers' ][ $i ][ 'user' ] =
'ЛОГИН' ;
$cfg [ 'Servers' ][ $i ][ 'password' ] = 'ПАРОЛЬ'
Установка новой версии
Устанавливаете новую версию MySQL, но в конце при завершении конфигурации выпадает ошибка:
ERROR Nr. 1045
Access denied for user 'root' @ 'localhost' ( using password: NO)
Это происходит потому, что ранее у вас стоял MySQL, который вы удалили без сноса самих баз. Если вы не помните старый пароль и вам нужны эти данные, то выполните установку новой версии без смены пароля, а потом смените пароль вручную через режим --skip-grant-tables.
P.S. Статья написана по материалам форума SQLinfo, т.е. в ней описаны не все потенциально возможные случаи возникновения ошибки mysql №1045, а только те, что обсуждались на форуме. Если ваш случай не рассмотрен в статье, то задавайте вопрос на форуме SQLinfo
Вам ответят, а статья будет расширена.