我将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
答案 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,所以这是我和我)。所以我混合了这些密码。
课程:多次检查......