Странная ошибка при работе с Zend Frame - PullRequest
0 голосов
/ 12 января 2010
Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[28000] [1045] Access denied for user 'liveaide_dbuser1'@'lynx-u.znetindia.net' (using password: YES)' in /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Pdo/Abstract.php:144 Stack trace: #0 /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() #1 /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Abstract.php(447): Zend_Db_Adapter_Pdo_Mysql->_connect() #2 /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Pdo/Abstract.php(235): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Select), Array) #3 /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Abstract.php(705): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Select), Array) #4 /home/liveaide/public_html/aider20test/zyberops/application/modules/default/models/Users.php(33): Zend_Db_Adapter_Abstract->fetchAll(Object(Zend_Db_Sel in /home/liveaide/public_html/aider20test/zyberops/library/Zend/Db/Adapter/Pdo/Abstract.php on line 144

в config.ini

[общий] db.adapter = PDO_MYSQL db.config.host = xxxhost db.config.username = имя пользователя db.config.password = пароль db.config.dbname = dbname

acl.roles.user = null acl.roles.admin = пользователь

в index.php

$config     = new Zend_Config_Ini('./application/config.ini','general');
$registry   = Zend_Registry::getInstance();
Zend_Registry::set('config',$config);

$db         = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('db',$db);

мы предоставили все учетные данные очень точно, но всякий раз, когда мы пытаемся получить доступ к базе данных [loginAction], мы получаем вышеуказанную ошибку. Также действие, связанное с операциями базы данных, отображает ошибку .... В localhost это работает нормально ....

Ответы [ 2 ]

4 голосов
/ 12 января 2010

Это определенно проблема аутентификации:

Различные результаты Google для SQLSTATE [28000] [1045] указывают на ошибки аутентификации. Вы можете попробовать сделать, liveaide_dbuser1 '@' localhost вместо liveaide_dbuser1'@'lynx-u.znetindia.net - Может быть, есть некоторые проблемы ... но только если сервер БД находится на веб-сервере.

Вы уверены, что у вас правильные учетные данные?

Edit: Хорошо, вместо того, чтобы делать:

$ дБ = Zend_Db :: завод ($ config-> db-> адаптер, $ Config-> db-> config-> ToArray ());

Можете ли вы сделать:

$db = Zend_Db::factory('pdo', array('user'=>'MyDbUser', 'pass' => 'MyPassword', etc);

То есть мы можем быть уверены, что передаются правильные значения? (Подставьте мои примеры для правильных аргументов).

0 голосов
/ 12 января 2010

Вам следует проверить с помощью PDO, если вы используете адаптер Zend_Db_Adapter_Pdo_Mysql.Тестирование с простым API ext / mysql не сравнивает яблоки с яблоками.

<?php
$pdo = new PDO("mysql:host=lynx-u.znetindia.net;dbname=test", 
    "liveaide_dbuser1", "XXXX");
echo "Test successful"; // no exception thrown
?>

(конечно, вместо XXXX введите свой пароль)

Запустите этот тестовый PHP-скрипт на том же самомхост, на котором вы запускаете приложение Zend Framework.Это важно, потому что одно и то же имя пользователя может работать при подключении с одного хоста, а не с другого хоста.Имя пользователя может даже быть авторизовано для подключения через петлевой метод (то есть «localhost»), но не с того же хоста, если вы вызываете IP, указав имя хоста.

Если этот абзац не имеет смысла для вас, прочитайте о Система привилегий доступа MySQL до тех пор, пока она не станет понятной.

...