답변:
우선, 데이터베이스 사용자 이름과 비밀번호를 확인하십시오. 이 단계를 진행하기 전에 이미 MySQL에서 데이터베이스를 설정해야합니다. 사용자를 작성하고 해당 사용자에게 액세스 권한을 부여해야합니다.
그런 다음 MySQL 서버 구성을 확인하십시오. 기본 포트 번호는 3306입니다. 그러나 시스템 관리자가 다른 포트 번호로 변경할 수 있습니다. 또는 MAMP / WAMP와 같은 소프트웨어 패키지를 사용하는 경우 포트 번호는 3306 이외의 것으로 설정 될 수 있습니다. 이러한 경우 호스트 필드에 포트 번호를 명시 적으로 입력해야합니다.
이 모든 것이 정확하고 데이터베이스 연결 오류가 계속 발생하면 루트 계정을 사용하여 데이터베이스에 액세스 할 수 있습니다. 루트가 작동하면 MySQL 설정의 권한에 문제가 있음을 의미합니다. 서버에 보안 위험을 추가하므로 향후 프로덕션 배포에는 루트 계정을 사용하지 않는 것이 좋습니다.
이것은 꽤 오래된 질문이지만 최근에이 문제를 발견했으며이 답변이 다른 사람에게 도움이되기를 바랍니다. 내 문제는 새로운 WAMP 설치 위에 이전 버전의 Magento로 내려졌습니다. MySQL 5.6.1부터 have_innodb 변수가 제거되었습니다. 그러나 Magento 설치 관리자는 해당 변수를 확인하고 찾지 못하면 오류를 발생시킵니다. 실제로 예외 로그를 확인하면 데이터베이스 서버가 InnoDB를 지원하지 않는다는 오류가 표시됩니다. 그러나 catch 처리기에서는 해당 예외 만 기록하고 일반적인 "데이터베이스 연결 오류"메시지를 발생시킵니다.
DB가 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 스토리지 엔진을 지원하지 않습니다.
따라서이 문제를 해결하기 위해 InnoDB 검사를 동일한 checkDatabase
기능으로 언급했습니다 .
// 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 파일로 저장하고 서버에 저장하십시오. 출력에 연결 오류가 발생하거나 오류가 없으면 "연결 성공!"이 출력됩니다. "host"-여기에 "localhost", "user"를 입력 할 수 있습니다. 여기에 데이터베이스 사용자 이름, "password"를 입력해야합니다. 여기서 데이터베이스 암호, "database name"을 입력해야합니다. 여기에 데이터베이스 이름을 입력해야합니다.