Неустранимая ошибка: PDOException SQLSTATE [28000] [1045] Доступ запрещен - PullRequest
2 голосов
/ 04 февраля 2011

Я пытаюсь установить приложение PHP, которое закодировало другого парня, с которым я не могу связаться, и он использовал PDO.У меня много проблем с запуском этого кода.В некоторых областях MySQL хорошо соединяется, потому что PDO не используется (это показывает, что имя пользователя и пароль верны), но в других он выдает это исключение:

Неустранимая ошибка: необработанное исключение 'PDOException' с сообщением 'SQLSTATE [28000] [1045] Доступ запрещен для пользователя 'www-data' @ 'localhost' (с использованием пароля: NO) 'в /var/www/x/include/SPDO.php:14 Трассировка стека: # 0 / var /www / x / include / SPDO.php (14): конструкция PDO -> _ ('mysql: host =; dbn ...', NULL, NULL) # 1 / var / www / x / include / SPDO.php (22): SPDO -> _construct () # 2 /var/www/x/include/class_Projecte.php(55): SPDO :: singleton () # 3 / var / www / x / dades_proj_edit.php (116): Project -> __ construct () # 4 {main} добавлено в /var/www/x/include/SPDO.php в строке 14

Я не понимаю, почему пытаетсясмотреть пользователя www-data .Я посмотрел в Google и обнаружил много проблем с этой ошибкой, но из CMS, такой как Magento, и ничего, что может мне помочь.

  • Версия PHP: PHP 5.3.3-7
  • PDOДрайвер для MySQL 5.1.49
  • Версия Apache: Apache / 2.2.16 (Debian)
  • Модули Apache: ядро ​​mod_log_config mod_logio prefork http_core mod_somod_mime mod_negotiation mod_php5 mod_reqtimeout mod_setenvif mod_status

Заранее спасибо!

обновление:

Это два файла, используемые для подключения к PDO:

Ответы [ 2 ]

7 голосов
/ 04 февраля 2011

www-data - это пользователь, под которым выполняются ваши PHP-скрипты, я думаю, это то, что PDO будет использовать по умолчанию, если не указано имя пользователя для подключения к вашей базе данных.

Похоже, что вы кодбыли предоставлены либо не удается найти имя пользователя и пароль из любого метода настроек, который вы используете, либо разработчик неправильно указал имя пользователя и пароль при вызове PDO.

Временное исправление - редактирование файла "/вар / WWW / х / включить / SPDO.php».В строке 14 вы найдете вызов конструктора PDO.Измените второй параметр на свое имя пользователя и третий параметр на свой пароль.

2 голосов
/ 04 февраля 2011

/ var / www / x / include / SPDO.php (14): конструкция PDO -> _ ('mysql: host =; dbn ...', NULL, NULL) Вторым и третьим аргументами должны быть имя пользователя и пароль для БД, а не NULL

Я проверил ваши файлы и обнаружил, что создание экземпляров конфигурации отсутствует (или не включено) - имя пользователя, пароль, хост и т. Д.

Вы должны использовать следующий код перед созданием объекта PDO:

$config = Config::singleton();
$config->set('dbhost', 'your_hostname'); //probably localhost
$config->set('dbname', 'your_database_name'); 
$config->set('dbuser', 'db_username'); 
$config->set('dbpass', 'db_user_password'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...