MySQL грешка 1045 - Статии

Автор:Василий Лукянчиков, vl (at) sqlinfo (точка) ru

Статистиката на форума на SQLinfo показва, че един от най-популярните проблеми е mysql error #1045 (грешка при достъпа). Текстът за грешка съдържа името на потребителя, на когото е отказан достъп, компютъра, от който е осъществена връзката, и ключовата дума ДА или НЕ, които показват дали е използвана парола или е направен опит за свързване с празна парола.

Причина за грешка 1045

Колкото и банално да звучи, единствената причина е грешната комбинация потребител/парола. Имайте предвид, че това е комбинация от потребителско име/парола, а не комбинация от потребителско име/парола. Това е много важен момент, тъй като в MySQL потребителят се характеризира с два параметъра: името и хоста, от който има достъп. Синтактично написан като 'username'@'hostname'.

По този начин причината за възникването на MySQL грешка 1045 е неправилна комбинация от три параметъра: потребителско име, име на хост и парола.

Забележка:Важно е да разберете, че има не само потребител с дадено име в базата данни (например root), но има или потребител с име root, който има правото да се свързва от даден хост (например root@localhost) или дори няколко различни потребители с име root ([email protected], [email protected], root@'my home ip' и т.н.), всеки със собствена парола и права.

Примери. 1) Ако не сте посочили изрично име на хост

2) Друга основна причина за mysql грешка 1045 може да бъде неправилно използване на кавички.

4) Акаунт с празно потребителско име се третира от MySQL сървъра като анонимен, т.е. позволява на потребителя да се свързва с произволно име или без да посочва име.Например, създадохте потребителя ''@localhost' с празна парола, така че всеки да може да се свърже с базата данни. Въпреки това, ако посочите парола, различна от празна, когато се свързвате, ще получите грешка 1045. Както споменахме по-рано, три параметъра трябва да съвпадат: потребителско име, име на хост и парола, а паролата в този случай не съвпада с това, което е в базата данни.

Какво да правя?

Първо, трябва да се уверите, че използвате правилното потребителско име и парола. За да направите това, трябва да се свържете с MySQL с администраторски права (ако грешка 1045 не дава такава възможност, тогава трябва да рестартирате MySQL сървъра в режим --skip-grant-tables), прегледайте съдържанието на потребителската таблица на базата на услугата mysql, която съхранява информация за потребителите, и я редактирайте, ако е необходимо.

Ако е имало грешка на първо място:

екзотичен пример. Зададохте нова парола за root@localhost в режим --skip-grant-tables, но след рестартиране на сървъра, все още получавате грешка при свързване през конзолния клиент: ГРЕШКА 1045 ( 28000 ): Достъпът отказан за потребител 'root' @ 'localhost' (използване на парола: ДА) Оказа се, че има два MySQL сървъра, конфигурирани на един и същи порт.

phpmyadmin

Когато отворите phpmyadmin в браузър, получавате съобщение:

Грешка MySQL каза:

#1045 - Достъпът е отказан за потребител 'root'@'localhost' (с парола: NO) Връзката за controluser, както е дефинирана във вашата конфигурация, е неуспешна. phpMyAdmin се опита да се свърже с MySQL сървъра и сървърът отхвърли връзката. Трябва да проверите хоста, потребителското име и паролата във вашата конфигурация и да се уверите, че отговарят на информацията, дадена от администратора на MySQL сървъра.

Инсталиране на нова версия

Инсталиране на нова версия на MySQL, но вВ крайна сметка, когато конфигурацията приключи, възниква грешка:

Това е така, защото преди това сте имали MySQL, който сте премахнали, без да разрушите самите бази данни. Ако не помните старата парола и имате нужда от тези данни, инсталирайте новата версия, без да променяте паролата, и след това променете паролата ръчно, като използвате режима --skip-grant-tables.