2013-04-13 14 views
5

To pytanie wydaje się być bardzo często zadawane, jednak nie mogę znaleźć ostatecznej odpowiedzi.Błąd MySQL 1045, "Odmowa dostępu dla użytkownika" użytkownika '@' localhost '(przy użyciu hasła: TAK) "

Wykonuję niektóre testy internetowe przy użyciu MySQL, a na początku użyłem użytkownika "root" (z niepustym hasłem). Mój użytkownik root działa dobrze z aplikacji (testowanych z PHP i Python's Django), z linii poleceń oraz z PHPMyAdmin.

Jednak nie chciałem używać użytkownika root, więc utworzyłem innego użytkownika i przyznałem wszystkie uprawnienia do baz danych, których użytkownik powinien potrzebować. (Użyłem PHPMyAdmin zalogowanego jako "root" dla tego zadania).

Nowy użytkownik nie może się zalogować do MySQL. Ani z aplikacji Django, ani z PHPMyAdmin, ani z linii poleceń.

mam dwa możliwe podejrzenia:

  1. jest globalny przywilej użytkownik brakuje. (Jak już powiedziałem, przyznałem wszystkie uprawnienia do bazy danych, jednak nie przyznano mi żadnych globalnych uprawnień);

  2. host skonfigurowany przez użytkownika. ('root' ma cztery wiersze w tabeli mysql.user z hostów 'localhost', 'my-pc-name', '127.0.0.1' i ':: 1', podczas gdy nowy użytkownik ma jedną linię dla przyjmującego „%”)

(I dwukrotnie sprawdzane hasło, więc jestem przekonany, to nie jest problem, hasło)

+1

pokaż, jak utworzyć nowego użytkownika w mysql –

+0

Czy próbowałeś przyznać przywileje konkretnie dla 'user @ localhost' zamiast używania'% 'wildcard? – Uby

+0

@ Tamil: Stworzyłem nowego użytkownika za pomocą PHPMyAdmin. –

Odpowiedz

5

%. oznacza, że ​​th nowy użytkownik może uzyskać dostęp do bazy danych z dowolnego hosta.

Jednakże, jeśli podałeś instrukcję CREATE USER, byłoby o wiele bardziej przydatne.

Ponadto należy sprawdzić podręcznika MySQL poniżej, w którym wyjaśnia, dlaczego użytkownik powinien mieć zarówno @'localhost' i @'%':

MySQL Reference Manual - Adding Users

+0

Dodanie użytkownika jako' @ 'localhost'' pomógł. Dziękuję Ci. –

+1

Szkoda, że ​​jeśli tak ważne jest posiadanie wersji localhost każdego użytkownika, który domyślnie program administracyjny mysql ("mysql workbench ce") nie zapewnia opcji w trybie modelowania, a zamiast tego zapewnia tylko sposób tworzenia wariantu "@%". – Jules

0

ponownym uruchomieniu serwera MySQL + "przepłukać przywileje;" komenda rozwiązała to dla mnie

Powiązane problemy