2010-01-12 2 views
0
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. пароль = пароль db.config.dbname = имя_бдстранно ошибка кадра Зенд работы

acl.roles.user = нуль 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], мы получили вышеуказанную ошибку. Кроме того, действие с указанной операции базы данных отображает ошибку .... В локальном хосте работает нормально ....

ответ

4

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

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

Удостоверьтесь, что у вас есть учетные данные верно?

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

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

Вы можете сделать:

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

Таким образом, мы можем быть уверены, что правильные значения становятся прошли в? (Замените мои примеры на фактические правильные аргументы).

+0

Да, я уверен, что это правильно. becoz мы проверили с обычным подключением базы данных php. он отлично работает там .... –

+0

мы проверили с обычным подключением базы данных php. Вы имеете в виду не использовать pdo? Как вы проверили? –

+0

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

0

Вы должны проверить с 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. Это важно, поскольку одно и то же имя пользователя может работать при подключении с одного хоста, а не от другого хоста. Имя пользователя может быть даже разрешено подключать с помощью метода loopback (т. Е. «Localhost»), но не с того же хоста, если вы вызываете IP, указав имя хоста.

Если этот параграф не имеет для вас значения, прочитайте около The MySQL Access Privilege System, пока это не имеет смысла.

Смежные вопросы