Answers:
首先,检查您的数据库用户名和密码。在继续此步骤之前,您应该已经在MySQL中设置了数据库。您需要创建一个用户并向该用户授予访问权限。
然后检查您的MySQL服务器配置。默认端口号是3306。但是,系统管理员可能会将其更改为其他名称。或者,如果您正在使用MAMP / WAMP之类的软件包,则端口号可能会设置为3306以外的其他值。在这种情况下,您需要在“主机”字段中显式放置端口号。
如果所有这些都正确并且您仍然有数据库连接错误,则可以尝试使用root帐户访问数据库。如果可以解决root问题,则意味着MySQL设置中的特权存在问题。尽管不建议将root帐户用于将来的生产部署,因为它会增加服务器的安全风险。
这是一个很老的问题,但我最近遇到了这个问题,希望这个答案对其他人有所帮助。我的问题归结为在新的WAMP安装之上的旧版本的Magento。从MySQL 5.6.1开始,have_innodb变量已被删除。但是,Magento安装程序会检查该变量,如果找不到该变量,则会引发错误。如果您实际检查异常日志,则会看到一个错误,指出数据库服务器不支持InnoDB。然而,在catch处理程序中,它仅记录该异常并引发通用的“数据库连接错误”消息。
如果您确定您的数据库支持InnoDB,最简单的解决方法是简单地编辑app\code\core\Mage\Install\Model\Installer\Db.php
,查找checkDatabase
方法,并在try块末尾检查的部分中注释掉have_innodb
。通常,我不主张编辑核心文件,但这只是为了使安装程序正常工作,因此我认为它足够安全。
app/code/core/Mage/Install/Model/Installer/Db.php
checkDatabase($data)
功能在此函数的结尾,有以下代码:
Mage::throwException(Mage::helper('install')->__('Database connection error.'));
将其更改为以下内容:
Mage::throwException(Mage::helper('install')->__($e->getMessage()));
转到您要安装Magento的浏览器,单击Continue
按钮
就我而言,我收到以下错误消息:
数据库服务器不支持InnoDB存储引擎。
因此,为解决此问题,我在同一checkDatabase
功能中注释了InnoDB检查。
// check InnoDB support
/*if (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') {
Mage::throwException(Mage::helper('install')->__('Database server does not support the InnoDB storage engine.'));
}*/
之后,我能够安装Magento。
您可以尝试使用此代码找到有关哪种数据库连接错误的更多详细信息,或者检查用户名和密码是否正确。
<?php
$mysqli=mysqli_connect("host","user","password","database name");
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}else{
echo "Connection succesfull!";
}
?>
将此脚本另存为php文件,并将其放在服务器上。输出将是连接错误,或者如果没有错误,则输出将是“连接成功!”。“主机”-您可以在此处输入“ localhost”,“用户”-在这里您必须输入数据库用户名,“密码”-在这里您必须输入数据库密码,“数据库名称”-在这里您必须输入数据库名称。