Errore di accesso negato a Mysql


9

Ho un problema comune, ma le solite soluzioni non funzionano, quindi scuse per quello che alla prima apparizione può sembrare una domanda precedentemente posta.

Ho il seguente errore quando provo a visualizzare il mio sito sul mio locale

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

Le credenziali vengono utilizzate in modo errato ma non so da dove vengano. Ho controllato app / etc / local.xml e ha tutte le credenziali corrette. Ho rimosso tutti gli altri file xml dalla directory (tranne config.xml). Ho cancellato il contenuto della cartella var (numerose volte)

Ho altri siti magento che funzionano sul mio locale, quindi le mie impostazioni del server dovrebbero andare bene. Sono davvero sconcertato e non so quale prossimo passo dovrei fare. Qualsiasi aiuto sarebbe apprezzato.


Vorrei andare al metodo di connessione nell'adattatore DB e subito prima della chiamata al metodo di connessione, posizionare qualcosa del tipo: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' ottenere traccia in questo modo è più compatto. Quindi in quella traccia vedere eventuali percorsi di codice dispari. Registra anche le credenziali effettive che vengono passate a DOP.
Petar Dzhambazov,

Risposte:


8

È necessario rendere l'utente in sitename@localhostgrado di accedere al database e alle tabelle in questione. Utilizzare il seguente SQL come root o superutente sull'istanza MySQL per concedere i privilegi:

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

Per ulteriori informazioni sulle sovvenzioni in MYSQL consultare il manuale: http://dev.mysql.com/doc/refman/5.1/en/grant.html


Grazie per la risposta. Ho trovato questa opzione prima ma non pensavo che avrebbe funzionato. Perché l'utente: 'sitename' e pass: 'yes' non sono le credenziali db corrette / specificate, suppongo che questo non risolva davvero il problema dei dettagli errati in uso o può in qualche modo trovare i dettagli nell'app / etc / local.xml dopo essere in grado di connettersi al db una volta con i dettagli sbagliati
sviluppo

C'è una differenza tra accedere direttamente a mysql e su "localhost" che è via rete. Devi concedere esplicitamente il percorso localhost.
Filwinkle,

2
ricorda ed esegui: flush privilegesdopo il tuo comando di concessione
Matthew Haworth

5

Nel caso in cui local.xml venga sovrascritto, cerca nel tuo sito file contenenti qualcosa del genere <username>sitename</username>. Per questo tipo di lavoro preferisco ack :

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

... o anche solo:

ack sitename app/

4

Prova a svuotare la cache, forse stai utilizzando livelli di cache di terze parti, disabilitali. L'ultima opzione è rinominare app / etc / local.xml e aprire il sito Web, Magento dovrebbe eseguire il processo di installazione, durante l'installazione fornire la vecchia chiave di crittografia da local.xml.


1

Tutte le altre risposte sono state un ottimo modo per restringere tutte le possibilità su ciò che il problema avrebbe potuto essere. Per questo ho ritenuto che ognuno di loro meritasse un voto positivo. Non hanno risolto direttamente il mio problema, quindi ho pensato che avrei dovuto dare una risposta da solo per cortesia e anche perché molte persone usano wordpress con magento.

Questo particolare sito utilizza wordpress come modulo. Questo modulo contiene credenziali db e la solita app magento / etc / local.xml. Non ero a conoscenza del fatto che questo modulo è reso praticamente in tutto il sito ed è rilevante per il database. Di conseguenza, è stato impossibile visualizzare il sito senza modificare anche i dettagli qui.


0

Ho avuto lo stesso problema, a seguito risolto questo per me:

  1. Scarica la versione originale di Magento
  2. eseguire il backup dell'app / ecc. (es .: app / _etc)
  3. Carica l'app / etc originale dalla cartella Magento originale
  4. Vai al tuo sito ed eseguo il processo di installazione di Magento, ho usato il mio nome di database originale, le impostazioni del database (utente / pw) e la chiave di crittografia.
  5. Carica la tua app / etc / module nella nuova cartella ETC
  6. Dopo l'installazione ho potuto accedere e cancellare la cache. Il sito Web funzionava di nuovo come prima.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.