我使用 Zend Framwork 和 Digitalus CMS。我使用 ubuntu 进行测试/开发,网站在那里运行良好。问题是当我将网站迁移到 IIS 生产服务器时,我收到以下错误:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'user'@'subdomin.domain.net' (using password: YES)' in D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php:129
Stack trace:
#0 D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(129): PDO->__construct('mysql:adapter=P...', 'username', 'password', Array)
#1 D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Pdo\Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect()
#2 D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Abstract.php(448): Zend_Db_Adapter_Pdo_Mysql->_connect()
#3 D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('SET NAMES 'utf8...', Array)
#4 D:\Domains\website.com\wwwroot\application\Bootstrap.php(144): Zend_Db_Adapter_Pdo_Abstract->query('SET NAMES 'utf8...')
#5 D:\Domains\website.com\wwwroot\library\Zend\Application\Bootstrap\BootstrapAbstract.php(666): Bo in D:\Domains\website.com\wwwroot\library\Zend\Db\Adapter\Pdo\Abstract.php on line 144
我对数据库做了一些更改,但我很确定这些更改不是这些错误的根源。
我该如何改正这些问题?
答案1
显然 PHP 会通知您他无法访问数据库。PDO 会收到错误,因为他无权访问数据库。
所有错误都源于您的网站无法访问您的数据库。
您有回滚版本吗?试试看,也许您对数据库所做的更改会搞砸它。
如果回滚不起作用,那么您必须向网站数据库添加具有权限的用户,并使用该用户连接您的 php 代码。
希望对你有帮助。
答案2
检查您的application.ini
,您需要为production
和development
部分定义相应的数据库凭据。