0


0

Zendフレームの動作に関する奇妙なエラー
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で

[general] 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 = user

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]にアクセスしようとするたびに、上記のエラーが発生しました。 また、データベース操作を含むアクションはエラー…​を表示します。 ローカルホストでは正常に動作します。…​

2 Answer


4


間違いなく認証の問題:

SQLSTATE [28000] [1045]のさまざまなGoogle結果は、すべて認証エラーを示しています。 liveaide_dbuser1'@'lynx-u.znetindia.netの代わりにliveaide_dbuser1 '@' localhostを試してみてください-問題があるかもしれません。 ただし、DBサーバーがWebサーバー上にある場合のみ。

認証資格情報は正しいですか?

編集:OK、代わりに:

_ $ db = Zend_Db :: factory($ config→ db→ adapter、$ config→ db→ config→ toArray()); _

できますか:

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

正しい値が渡されていることを確認できますか? (実際の正しい引数を私の例に置き換えてください)。


0


`Zend_Db_Adapter_Pdo_Mysql`アダプターを使用している場合は、PDOでテストする必要があります。 プレーンなext / mysql APIを使用したテストでは、リンゴとリンゴを比較していません。


(もちろん、XXXXの代わりにパスワードを入力してください)

Zend Frameworkアプリケーションを実行する同じホストでこのテストPHPスクリプトを実行します。 これは重要です。なぜなら、あるホストから接続し、別のホストから接続しない場合、同じユーザー名が機能する可能性があるからです。 ユーザー名は、ループバックメソッド(つまり、 「localhost」)。ただし、ホスト名を指定してIPを呼び出す場合、同じホストからではありません。

その段落が意味をなさない場合は、意味がわかるまでhttp://dev.mysql.com/doc/refman/5.1/en/privilege-system.html[MySQLアクセス権限システム]を読んでください。