SQLSTATE [28000] [1045](Magento)拒绝用户访问..(但新的PDO,适用于测试程序)

时间:2012-03-11 02:18:28

标签: mysql magento pdo

我将Magento商店复制到另一个提供商并安装了数据库。没什么特别的。

测试mysql数据库总是出现此错误:

SQLSTATE[28000] [1045] Access denied for user ‘xx’@’localhost’ (using password: YES)

我找到了这个程序/httpdocs/lib/Zend/Db/Adapter/Pdo/Abstract.php并且有这样的陈述:

try { 
    $this->_connection = new PDO( 
    $dsn, 
    $this->_config[’username’], 
    $this->_config[’password’], 
    $this->_config[’driver_options’] 
); 

如果我在同一台服务器上的短测试程序中使用相同设置的相同语句,则连接有效。

这怎么可能?在Magento中调用时,PDO中有什么不同的工作吗?

我忘了写,这个域只有一个共享的IP地址和一个域名(但还没有DNS),所以我将这个IP地址与windows hosts文件中的这个域名相结合。所以域名www.xxxx.com已存在于互联网上,我使用xxxx.com在windows主机文件中耦合到共享IP地址。通过这种方式,我总是测试没有转移域名的新网站。

当我将所有内容复制到我自己的服务器(localhost.com for Magento)时,我必须找到它,一切正常。所以它与我的提供商的情况有关...但为什么它在我自己的PDO测试程序中使用相同的设置?

$ dsn = mysql:model = mysql4; initStatements = SET NAMES utf8; type = pdo_mysql; host = localhost; dbname = xxxx; active = 1

2 个答案:

答案 0 :(得分:4)

你试过了吗?

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON your_database.* TO 'user_name'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;

如果您在my.cnf文件中指定了一个IP地址的BIND ADDRESS,则应使用IP地址而不是localhost

答案 1 :(得分:0)

感谢所有答案,但解决方案很简单。

在上一个提供商的网站中,local.xml中的密码是正确的

但是每封电子邮件给我的密码是错误的,但不可能看到(小写字母L和大写字母i,所以这是我和我)。所以我混合了这些密码。

课程:多次检查......