Błąd odmowy dostępu MySQL


9

Mam wspólny problem, ale zwykłe rozwiązania nie działają, więc przepraszam za to, co przy pierwszym pojawieniu się może wydawać się wcześniej zadanym pytaniem.

Występuje następujący błąd podczas próby wyświetlenia mojej witryny na moim komputerze lokalnym

    Access denied for user 'sitename'@'localhost' (using password: YES)

Błędnie użyte dane uwierzytelniające, ale nie wiem, skąd pochodzą. Sprawdziłem aplikację / etc / local.xml i ma ona wszystkie poprawne dane uwierzytelniające. Usunąłem wszystkie inne pliki xml z katalogu (oprócz config.xml). Usunąłem zawartość folderu var (wiele razy)

Mam inne strony Magento działające na moim lokalnym, więc moje ustawienia serwera powinny być w porządku. Naprawdę mnie to zaskoczyło i nie wiem, jaki kolejny krok powinienem zrobić. Każda pomoc będzie mile widziana.


Chciałbym przejść do metody connect w adapterze DB i tuż przed wywołaniem metody połączenia umieścić coś takiego: „$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' uzyskanie takiego śladu jest bardziej kompaktowe. Następnie w tym śladzie sprawdź nieparzyste ścieżki kodu. Rejestruj także rzeczywiste dane uwierzytelniające przekazywane do PDO.
Petar Dzhambazov

Odpowiedzi:


8

Musisz umożliwić użytkownikowi sitename@localhostdostęp do bazy danych i tabel. Użyj następującego kodu SQL jako administratora lub administratora w instancji MySQL, aby nadać uprawnienia:

GRANT ALL ON magento_local.* TO 'sitename'@'localhost';

Więcej informacji na temat Grants w MYSQL znajduje się w podręczniku: http://dev.mysql.com/doc/refman/5.1/en/grant.html


Dziękuję za odpowiedź. Natrafiłem na tę opcję wcześniej, ale nie sądziłem, że zadziała. Ponieważ użytkownik: „sitename” i pass: „yes” nie są poprawnymi / określonymi poświadczeniami db, założyłem, że to tak naprawdę nie rozwiązuje problemu użycia niewłaściwych szczegółów lub czy może jakoś znaleźć szczegóły w app / etc / local.xml po możliwość jednokrotnego połączenia się z
bazą

Istnieje różnica między bezpośrednim dostępem do mysql a komunikacją „localhost” przez sieć. Musisz udzielić jawnie w lokalizacji localhost.
philwinkle

2
pamiętajcie i biegnijcie: flush privilegespo waszym poleceniu
Matthew Haworth,

5

W przypadku przesłonięcia pliku local.xml wyszukaj w swojej witrynie pliki zawierające coś takiego <username>sitename</username>. Do tego rodzaju pracy wolę potwierdzenie :

ack --xml "<username>.*sitename.*</username>" app/

... a nawet po prostu:

ack sitename app/

4

Spróbuj wyczyścić pamięć podręczną, być może używasz warstw buforowania innych firm, wyłącz je. Ostatnią opcją jest zmiana nazwy aplikacji / etc / local.xml i otwarcie strony internetowej, Magento powinien uruchomić proces instalacji, podczas instalacji podać stary klucz szyfrowania z pliku local.xml.


1

Wszystkie pozostałe odpowiedzi były świetnym sposobem na zawężenie wszystkich możliwości co do problemu. W tym celu czułem, że każdy z nich zasługuje na głosowanie. Nie rozwiązali bezpośrednio mojego problemu, więc czułem, że powinienem udzielić odpowiedzi jako uprzejmości, a także dlatego, że wiele osób używa wordpress z Magento.

Ta konkretna strona używa wordpress jako modułu. Ten moduł zawiera poświadczenia bazy danych, a także zwykłą aplikację magento / etc / local.xml. Nie wiedziałem, że ten moduł jest renderowany prawie w całej witrynie i jest odpowiedni dla bazy danych. W rezultacie uniemożliwiło to przeglądanie strony bez zmiany tutaj również danych.


0

Miałem ten sam problem, po rozwiązaniu tego dla mnie:

  1. Pobierz oryginalną wersję Magento
  2. wykonaj kopię zapasową aplikacji / etc (np .: app / _etc)
  3. Prześlij oryginalną aplikację / etc z oryginalnego folderu Magento
  4. Wejdź na swoją stronę i wykonaj proces instalacji Magento, użyłem mojej oryginalnej nazwy bazy danych, ustawień bazy danych (użytkownik / pw) i klucza szyfrowania.
  5. Prześlij swoją aplikację / etc / modułów do nowego folderu ETC
  6. Po instalacji mogłem się zalogować i wyczyścić pamięć podręczną. Strona znów działała jak wcześniej.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.