Mysql доступ запрещен ошибка

9

У меня есть общая проблема, но обычные решения не работают, поэтому извинения за то, что на первый взгляд может показаться ранее заданным вопросом.

У меня есть следующая ошибка при попытке просмотра моего сайта на моем локальном

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

Используются неверные учетные данные, но я не знаю, откуда они. Я проверил приложение / etc / local.xml и у него есть все правильные учетные данные. Я удалил все остальные XML-файлы из каталога (кроме config.xml). Я удалил содержимое папки var (много раз)

У меня есть другие magento сайты, работающие на моем локальном компьютере, поэтому мои настройки сервера должны быть в порядке. Я действительно озадачен этим и не знаю, что делать дальше. Любая помощь будет оценена.

develophper
источник
Я хотел бы перейти к методу подключения в адаптере БД и прямо перед вызовом метода подключения поместить что-то вроде: '$ e = new Exception (); Mage :: log ($ e-> getTraceAsString (), null, 'logname', true); ' получить след, как это более компактно. Затем в этой трассировке просмотрите любые нечетные пути кода. Также регистрируйте фактические учетные данные, которые передаются в PDO.
Петар Джамбазов

Ответы:

8

Вы должны предоставить пользователю sitename@localhostвозможность доступа к базе данных и таблицам. Используйте следующий SQL как root или суперпользователь на экземпляре MySQL для предоставления привилегий:

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

Для получения дополнительной информации о грантах в MYSQL см. Руководство: http://dev.mysql.com/doc/refman/5.1/en/grant.html.

philwinkle
источник
Спасибо за ответ. Я сталкивался с этим вариантом ранее, но я не думал, что это сработает. Поскольку user: 'sitename' и pass: 'yes' не являются правильными / указанными учетными данными базы данных, я предположил, что это на самом деле не решает проблему использования неправильных деталей или может каким-то образом найти детали в app / etc / local.xml после возможность подключиться к БД один раз с неверными деталями
develophper
Есть разница между прямым доступом к mysql и через «localhost» через сеть. Вы должны предоставить явно на локальном хосте.
Philwinkle
2
помни и беги: flush privilegesпосле твоей грантовой команды
Мэтью Хаворт
5

В случае переопределения local.xml найдите на своем сайте файлы, содержащие что-то подобное <username>sitename</username>. Для такой работы я предпочитаю ack :

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

... или даже просто:

ack sitename app/
clockworkgeek
источник
4

Попробуйте очистить кеш, возможно, вы используете сторонние слои кэширования, отключите их. Последний вариант - переименовать приложение / etc / local.xml и открыть сайт, Magento должен запустить процесс установки, во время установки предоставить старый ключ шифрования из local.xml.

mageUz
источник
1

Все остальные ответы были отличным способом сузить все возможности относительно того, что могло бы быть проблемой. За это я чувствовал, что каждый из них заслуживает голосования. Они не решили мою проблему напрямую, поэтому я решил, что должен дать ответ сам вежливо, а также потому, что многие люди используют WordPress с magento.

Этот конкретный сайт использует WordPress в качестве модуля. Этот модуль содержит учетные данные БД, а также обычное приложение magento / etc / local.xml. Я не знал, что этот модуль отображается практически на всем сайте и имеет отношение к базе данных. В результате это сделало невозможным просмотр сайта без изменения деталей здесь.

develophper
источник
0

У меня была такая же проблема, следующие решили это для меня:

  1. Скачать оригинальную версию Magento
  2. сделайте резервную копию вашего приложения / etc (например, app / _etc)
  3. Загрузите оригинальное приложение / etc из исходной папки Magento
  4. Зайдите на ваш сайт и выполните процесс установки Magento, я использовал свое исходное имя базы данных, настройки базы данных (user / pw) и ключ шифрования.
  5. Загрузите ваше приложение / etc / modules в новую папку ETC
  6. После установки я мог войти в систему и очистить кеш. Сайт снова работал, как и раньше.

источник