Error de acceso de MySQL denegado

9

Tengo un problema común, pero las soluciones habituales no funcionan, así que disculpas por lo que en la primera aparición puede parecer una pregunta previa.

Tengo el siguiente error al intentar ver mi sitio en mi local

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

Las credenciales se usan mal pero no sé de dónde vienen. He comprobado la aplicación / etc / local.xml y tiene todas las credenciales correctas. He eliminado todos los demás archivos xml del directorio (excepto config.xml). He eliminado el contenido de la carpeta var (varias veces)

Tengo otros sitios de magento trabajando en mi local, por lo que la configuración de mi servidor debería estar bien. Estoy realmente perplejo con esto y no sé qué próximo paso debería tomar. Cualquier ayuda sería apreciada.

desarrollador
fuente
Iría al método de conexión en el adaptador de base de datos y justo antes de la llamada al método de conexión, colocaría algo como: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' conseguir rastros como este es más compacto. Luego, en ese rastro, vea las rutas de código impares. También registre las credenciales reales que se pasan a PDO.
Petar Dzhambazov

Respuestas:

8

Debe hacer que el usuario sitename@localhostpueda acceder a la base de datos y las tablas en cuestión. Use el siguiente SQL como root o superusuario en la instancia de MySQL para otorgar los privilegios:

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

Para obtener más información sobre las subvenciones en MYSQL, consulte el manual: http://dev.mysql.com/doc/refman/5.1/en/grant.html

philwinkle
fuente
Gracias por la respuesta. Me encontré con esta opción antes, pero no pensé que funcionaría. Debido a que el usuario: 'sitename' y pass: 'yes' no son las credenciales de db correctas / especificadas, supuse que esto realmente no resuelve el problema de la utilización de detalles incorrectos o puede encontrar de alguna manera los detalles en la aplicación / etc / local.xml después poder conectarse a la base de datos una vez con los detalles incorrectos
desarrollador
Hay una diferencia entre acceder a mysql directamente y a través de 'localhost' que se realiza a través de la red. Debe otorgar explícitamente en la ubicación localhost.
philwinkle
2
recuerda y corre: flush privilegesdespués de tu orden de concesión
Matthew Haworth
5

En caso de que se sustituya local.xml, busque en su sitio archivos que contengan algo como <username>sitename</username>. Para este tipo de trabajo prefiero ack :

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

... o incluso solo:

ack sitename app/
Clockworkgeek
fuente
4

Intente borrar el caché, tal vez esté utilizando capas de almacenamiento en caché de terceros, desactívelas. La última opción es cambiar el nombre de la aplicación / etc / local.xml y abrir el sitio web, Magento debe ejecutar el proceso de instalación, durante la instalación proporcione la antigua clave de cifrado de local.xml.

mageUz
fuente
1

Todas las otras respuestas fueron una excelente manera de reducir todas las posibilidades en cuanto a cuál podría haber sido el problema. Por esto sentí que cada uno de ellos merecía un voto positivo. No resolvieron mi problema directamente, así que sentí que debería responder yo mismo como cortesía y también porque mucha gente usa wordpress con magento.

Este sitio en particular utiliza wordpress como módulo. Este módulo contiene credenciales de db, así como la aplicación habitual de magento / etc / local.xml. No sabía que este módulo se presenta en casi todo el sitio y es relevante para la base de datos. Como resultado, hizo imposible ver el sitio sin cambiar los detalles aquí también.

desarrollador
fuente
0

Tuve el mismo problema, lo siguiente me resolvió esto:

  1. Descargue la versión original de Magento
  2. copia de seguridad de su aplicación / etc (ej .: aplicación / _etc)
  3. Cargue la aplicación original / etc desde la carpeta original de Magento
  4. Vaya a su sitio y realice el proceso de instalación de Magento. Utilicé mi nombre de base de datos original, la configuración de la base de datos (usuario / pw) y la clave de cifrado.
  5. Cargue su aplicación / etc / modules en la nueva carpeta ETC
  6. Después de la instalación, podría iniciar sesión y borrar el caché. El sitio web estaba funcionando nuevamente como antes.

fuente