Acesso negado ao MySQL

9

Eu tenho um problema comum, mas as soluções habituais não estão funcionando, portanto, desculpas pelo que na primeira aparição possa parecer uma pergunta feita anteriormente.

Tenho o seguinte erro ao tentar visualizar meu site no meu local

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

As credenciais estão sendo usadas incorretamente, mas não sei de onde elas vêm. Eu verifiquei o aplicativo / etc / local.xml e ele possui todas as credenciais corretas. Eu removi todos os outros arquivos xml do diretório (exceto config.xml). Eu apaguei o conteúdo da pasta var (várias vezes)

Eu tenho outros sites magento trabalhando no meu local, então minhas configurações de servidor devem estar bem. Estou realmente perplexo com isso e não sei o próximo passo que devo dar. Qualquer ajuda seria apreciada.

develophper
fonte
Eu iria para o método de conexão no adaptador DB e, pouco antes da chamada para o método de conexão, colocaria algo como: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), nulo, 'logname', true); ' obter traços como esse é mais compacto. Então, nesse rastreio, veja os caminhos de código ímpares. Registre também as credenciais reais que são passadas para o PDO.
Petar Dzhambazov 14/10

Respostas:

8

Você precisa tornar o usuário sitename@localhostcapaz de acessar o banco de dados e as tabelas em questão. Use o seguinte SQL como raiz ou superusuário na instância do MySQL para conceder os privilégios:

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

Para obter mais informações sobre Grants no MYSQL, consulte o manual: http://dev.mysql.com/doc/refman/5.1/en/grant.html

philwinkle
fonte
Obrigado pela resposta. Encontrei essa opção mais cedo, mas não achei que funcionaria. Como user: 'sitename' e pass: 'yes' não são as credenciais de banco de dados corretas / especificadas, presumi que isso realmente não resolva o problema de detalhes incorretos sendo usados ​​ou ele pode, de alguma forma, encontrar os detalhes em app / etc / local.xml após ser capaz de se conectar ao db uma vez com os detalhes errados
develophper
Há uma diferença entre acessar o mysql diretamente e sobre 'localhost', que é via rede. Você precisa conceder explicitamente no local do host local.
philwinkle
2
lembre-se e execute: flush privilegesapós o seu comando GRANT
Matthew Haworth
5

Caso o local.xml esteja sendo substituído, pesquise no seu site arquivos contendo algo parecido <username>sitename</username>. Para esse tipo de trabalho, prefiro ack :

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

... ou apenas:

ack sitename app/
clockworkgeek
fonte
4

Tente limpar o cache, talvez você esteja usando camadas de cache de terceiros, desative-as. A última opção é renomear app / etc / local.xml e abrir o site, o Magento deve executar o processo de instalação, durante a instalação forneça a chave de criptografia antiga do local.xml.

mageUz
fonte
1

Todas as outras respostas foram uma ótima maneira de diminuir todas as possibilidades sobre o que poderia ter sido o problema. Por isso, senti que cada um deles merecia um voto positivo. Eles não resolveram meu problema diretamente, então eu senti que deveria responder como cortesia e também porque muitas pessoas usam o wordpress com magento.

Este site em particular usa o wordpress como um módulo. Este módulo contém credenciais de banco de dados, bem como o aplicativo magento usual / etc / local.xml. Eu não sabia que esse módulo é renderizado praticamente em todo o site e é relevante para o banco de dados. Como resultado, tornou impossível visualizar o site sem alterar os detalhes aqui também.

develophper
fonte
0

Eu tive o mesmo problema, a seguir resolvi isso para mim:

  1. Baixe a versão original do Magento
  2. faça backup do seu aplicativo / etc (por exemplo: app / _etc)
  3. Faça o upload do aplicativo / etc original da pasta Magento original
  4. Vá para o seu site e faça o processo de instalação do Magento, usei meu nome de banco de dados original, configurações do banco de dados (usuário / pw) e chave de criptografia.
  5. Carregue seu aplicativo / etc / modules na nova pasta ETC
  6. Após a instalação, consegui efetuar login e limpar o cache. O site estava funcionando novamente como antes.

fonte