Erreur d'accès mysql refusée

9

J'ai un problème commun mais les solutions habituelles ne fonctionnent pas, donc des excuses pour ce qui à la première apparition peut sembler être une question posée précédemment.

J'ai l'erreur suivante lorsque j'essaie d'afficher mon site sur mon site local

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

Les informations d'identification sont mal utilisées, mais je ne sais pas d'où elles viennent. J'ai vérifié app / etc / local.xml et il a toutes les informations d'identification correctes. J'ai supprimé tous les autres fichiers xml du répertoire (sauf config.xml). J'ai supprimé le contenu du dossier var (plusieurs fois)

J'ai d'autres sites magento travaillant sur mon local, donc les paramètres de mon serveur devraient être corrects. Je suis vraiment perplexe à ce sujet et je ne sais pas quelle prochaine étape je dois prendre. Toute aide serait appréciée.

developpeur
la source
Je voudrais aller à la méthode connect dans l'adaptateur DB et juste avant l'appel à la méthode de connexion, placer quelque chose comme: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' obtenir une trace comme celle-ci est plus compact. Ensuite, dans cette trace, voyez les chemins de code impairs. Consignez également les informations d'identification réelles transmises à PDO.
Petar Dzhambazov

Réponses:

8

Vous devez permettre à l'utilisateur sitename@localhostd'accéder à la base de données et aux tables en question. Utilisez le SQL suivant en tant que root ou superutilisateur sur l'instance MySQL pour accorder les privilèges:

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

Pour plus d'informations sur les subventions dans MYSQL, consultez le manuel: http://dev.mysql.com/doc/refman/5.1/en/grant.html

philwinkle
la source
Merci d'avoir répondu. J'ai rencontré cette option plus tôt, mais je ne pensais pas que cela fonctionnerait. Parce que l'utilisateur: "nom du site" et passe: "oui" ne sont pas les informations d'identification correctes / spécifiées de la base de données, j'ai supposé que cela ne résout pas vraiment le problème des mauvais détails utilisés ou peut-il trouver les détails dans app / etc / local.xml après pouvoir se connecter une fois à la base de données avec les mauvais détails
develophper
Il y a une différence entre accéder directement à mysql et via 'localhost' qui se fait via le réseau. Vous devez accorder explicitement sur l'emplacement localhost.
philwinkle
2
souvenez-vous et exécutez: flush privilegesaprès votre commande de subvention
Matthew Haworth
5

Dans le cas où local.xml est remplacé, recherchez sur votre site des fichiers contenant quelque chose comme <username>sitename</username>. Pour ce genre de travail, je préfère ack :

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

... ou même simplement:

ack sitename app/
Clockworkgeek
la source
4

Essayez de vider le cache, vous utilisez peut-être des couches de mise en cache tierces, désactivez-les. La dernière option est de renommer l'application / etc / local.xml et d'ouvrir le site Web, Magento devrait exécuter le processus d'installation, pendant l'installation, fournissez l'ancienne clé de chiffrement à partir de local.xml.

mageUz
la source
1

Toutes les autres réponses étaient un excellent moyen de réduire toutes les possibilités quant à ce qu'aurait pu être le problème. Pour cela, je sentais que chacun d'eux méritait un vote positif. Ils n'ont pas directement résolu mon problème, j'ai donc pensé que je devais donner moi-même une réponse par courtoisie et aussi parce que beaucoup de gens utilisent wordpress avec magento.

Ce site particulier utilise wordpress comme module. Ce module contient les informations d'identification db ainsi que l'application magento habituelle / etc / local.xml. Je ne savais pas que ce module est rendu à peu près partout sur le site et est pertinent pour la base de données. En conséquence, il a été impossible de consulter le site sans modifier les détails ici également.

developpeur
la source
0

J'ai eu le même problème, après avoir résolu cela pour moi:

  1. Téléchargez la version originale de Magento
  2. sauvegarder votre application / etc (ex: app / _etc)
  3. Téléchargez l'application d'origine / etc depuis le dossier Magento d'origine
  4. Allez sur votre site et faites le processus d'installation de Magento, j'ai utilisé mon nom de base de données d'origine, les paramètres de base de données (utilisateur / pw) et la clé de cryptage.
  5. Téléchargez votre application / etc / modules dans le nouveau dossier ETC
  6. Après l'installation, je pouvais me connecter et vider le cache. Le site Web fonctionnait à nouveau comme avant.

la source