MySQL-Zugriff verweigert Fehler


9

Ich habe ein häufiges Problem, aber die üblichen Lösungen funktionieren nicht. Ich entschuldige mich für das, was auf den ersten Blick wie eine zuvor gestellte Frage erscheint.

Beim Versuch, meine Website auf meiner lokalen Website anzuzeigen, tritt der folgende Fehler auf

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

Die Anmeldeinformationen werden falsch verwendet, aber ich weiß nicht, woher sie kommen. Ich habe app / etc / local.xml überprüft und es hat alle korrekten Anmeldeinformationen. Ich habe alle anderen XML-Dateien aus dem Verzeichnis entfernt (außer config.xml). Ich habe den Inhalt des Ordners var gelöscht (mehrfach)

Ich habe andere Magento-Sites auf meinem lokalen, daher sollten meine Servereinstellungen in Ordnung sein. Ich bin wirklich ratlos und weiß nicht, welchen nächsten Schritt ich tun soll. Jede Hilfe wäre dankbar.


Ich würde zur Verbindungsmethode im DB-Adapter gehen und kurz vor dem Aufruf der Verbindungsmethode Folgendes platzieren: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' Eine solche Spur zu bekommen ist kompakter. Suchen Sie dann in dieser Ablaufverfolgung nach ungeraden Codepfaden. Protokollieren Sie auch die tatsächlichen Anmeldeinformationen, die an das PDO übergeben werden.
Petar Dzhambazov

Antworten:


8

Sie müssen dem Benutzer sitename@localhostden Zugriff auf die betreffende Datenbank und die betreffenden Tabellen ermöglichen. Verwenden Sie das folgende SQL als Root oder Superuser in der MySQL-Instanz, um die Berechtigungen zu erteilen:

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

Weitere Informationen zu Zuschüssen in MYSQL finden Sie im Handbuch: http://dev.mysql.com/doc/refman/5.1/en/grant.html


Danke für die Antwort. Ich bin früher auf diese Option gestoßen, aber ich dachte nicht, dass sie funktionieren würde. Da Benutzer: 'Site-Name' und Pass: 'Ja' nicht die richtigen / angegebenen Datenbank-Anmeldeinformationen sind, habe ich angenommen, dass dies das Problem der Verwendung falscher Details nicht wirklich löst oder die Details in app / etc / local.xml danach irgendwie finden kann einmal mit den falschen Details mit der
Datenbank

Es gibt einen Unterschied zwischen dem direkten Zugriff auf MySQL und dem Zugriff auf 'localhost' über das Netzwerk. Sie müssen explizit den lokalen Hostspeicherort angeben.
Philwinkle

2
Denken Sie daran und laufen Sie: flush privilegesnach Ihrem Grant-Befehl
Matthew Haworth

5

Falls local.xml überschrieben wird, durchsuchen Sie Ihre Site nach Dateien, die etwas enthalten <username>sitename</username>. Für diese Art von Arbeit bevorzuge ich ack :

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

... oder auch nur:

ack sitename app/

4

Versuchen Sie, den Cache zu leeren. Möglicherweise verwenden Sie Caching-Ebenen von Drittanbietern. Deaktivieren Sie diese. Die letzte Option ist das Umbenennen von app / etc / local.xml und das Öffnen der Website. Magento sollte den Installationsprozess ausführen und während der Installation den alten Verschlüsselungsschlüssel von local.xml bereitstellen.


1

Alle anderen Antworten waren eine großartige Möglichkeit, alle Möglichkeiten einzugrenzen, was das Problem gewesen sein könnte. Dafür hatte ich das Gefühl, dass jeder von ihnen eine positive Abstimmung verdient. Sie haben mein Problem nicht direkt gelöst, daher hatte ich das Gefühl, ich sollte selbst eine Antwort aus Höflichkeit geben und auch, weil viele Leute WordPress mit Magento verwenden.

Diese spezielle Site verwendet WordPress als Modul. Dieses Modul enthält DB-Anmeldeinformationen sowie die übliche Magento-App / etc / local.xml. Mir war nicht bewusst, dass dieses Modul so ziemlich überall auf der Site gerendert wird und für die Datenbank relevant ist. Infolgedessen war es unmöglich, die Site anzuzeigen, ohne auch hier die Details zu ändern.


0

Ich hatte das gleiche Problem, folgendes löste dies für mich:

  1. Laden Sie die Originalversion von Magento herunter
  2. Sichern Sie Ihre App / etc (Beispiel: app / _etc)
  3. Laden Sie die ursprüngliche App / etc aus dem ursprünglichen Magento-Ordner hoch
  4. Gehen Sie zu Ihrer Site und führen Sie den Magento-Installationsprozess durch. Ich habe meinen ursprünglichen Datenbanknamen, die Datenbankeinstellungen (Benutzer / pw) und den Verschlüsselungsschlüssel verwendet.
  5. Laden Sie Ihre App / etc / modules in den neuen ETC-Ordner hoch
  6. Nach der Installation konnte ich mich anmelden und den Cache leeren. Die Website funktionierte wieder wie zuvor.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.