Magento 설치는 InnoDB가 없을 때 InnoDB를 사용할 수 없다고 불평합니다.
설치하는 동안 Magento에서 다음 오류가 발생합니다.
데이터베이스 서버는 InnoDB 스토리지 엔진을 지원하지 않습니다.
저는 마젠토에 대한 모든 종속성을 수정했고, SHOW ENGINES를 사용하여 명령줄에서 MySQL로 두 번 확인했으며, InnoDB를 사용할 수 있습니다(기본 스토리지 엔진도 있음).
이것은 다른 사람들이 설치할 때 볼 수 있는 MySQL 구성에 대한 액세스 문제가 아닙니다.
참고: 이는 Mac Pro(내가 개발 중인 도메인 이름에 대한 간단한 호스트 DNS 다시 쓰기)에서 실행됩니다.
파일의 59번째 줄app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php
대체:
public function supportEngine()
{
$variables = $this->_getConnection()
->fetchPairs('SHOW VARIABLES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
}
이것으로:
public function supportEngine()
{
$variables = $this->_getConnection()
->fetchPairs('SHOW ENGINES');
return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}
아니면 코어 해킹을 하지 마세요!설치하기 전에 Installer-Model을 부드럽게 재정의해야 합니다.
이 파일을 에 붙여넣습니다.app/code/local/Company/InstallBugfix/etc/config.xml
:
<?xml version="1.0"?>
<config>
<modules>
<Company_InstallBugfix>
<version>0.1.0</version>
</Company_InstallBugfix>
</modules>
<global>
<models>
<installbugfix>
<class>Company_InstallBugfix_Model</class>
</installbugfix>
<install>
<rewrite>
<installer_db_mysql4>Company_InstallBugfix_Model_Installer_Db_Mysql4</installer_db_mysql4>
</rewrite>
</install>
</models>
</global>
</config>
그리고 그 다음에.app/code/local/Company/InstallBugfix/Model/Installer/Db/Mysql4.php
:
<?php
class Company_InstallBugfix_Model_Installer_Db_Mysql4 extends Mage_Install_Model_Installer_Db_Mysql4
{
/**
* Check InnoDB support
*
* @return bool
*/
public function supportEngine()
{
$supportsEngine = parent::supportEngine();
if ($supportsEngine) {
return true;
}
$variables = $this
->_getConnection()
->fetchPairs('SHOW ENGINES');
return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}
}
확장을 활성화합니다.장점은 mysql-version이 이전 버전인 경우 이전 검증이 여전히 정확하다는 것입니다.
ver 1.9.1.0 downloader.dll
이것을 사용하는 모든 사람을 위해 게시하는 것.downloader.php
현재 에 포함되어 있습니다.1.9.1.0
설치 프로그램
MySQL 데이터베이스가 최신 버전의 InnoDB(기본값)를 지원하는 것이 만족스러운 경우.파일을 안전하게 편집하여 검사 및 모든 다운로드를 제거할 수 있습니다.
/**
* Check availabe InnoDB on database.
*
* @return Magento_Downloader_Validator
*/
protected function _checkDbInnoDb()
{
if (!$this->_connection) {
return $this;
}
$this->addMessage('Database server supports InnoDB storage engine');
return $this;
}
버그는 마젠토 CE 1.8에서 수정되었으므로 CE \leq 1.7에 대해 위의 라인을 사용하십시오.
public function supportEngine()
{
$variables = $this->_getConnection()->fetchPairs('SHOW ENGINES');
return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}
저도 같은 문제를 겪고 있었는데, 이 문제가 작동하는 유일한 방법은 다음에서 app/code/core/Mage/Installer/Model/Installer/Db/Mysql4.php 파일의 59행을 변경했을 때였습니다.
public function supportEngine()
{
$variables = $this->_getConnection()
->fetchPairs('SHOW VARIABLES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
}
포함:
public function supportEngine()
{
$variables = $this->_getConnection()
->fetchPairs('SHOW ENGINES');
return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'YES');
}
그리고 저는 어디에서도 그것을 찾지 못했기 때문에 당신이 어려움을 겪고 있다면 이것으로 해결될 것이라고 장담합니다.
파일 app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php의 59행
대체:
public function supportEngine()
{
$variables = $this->_getConnection()
->fetchPairs('SHOW VARIABLES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
}
이것으로:
public function supportEngine()
{
/*
$variables = $this->_getConnection()
->fetchPairs('SHOW ENGINES');
return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
*/
return 1;
}
언급URL : https://stackoverflow.com/questions/15443448/magento-install-complains-about-missing-innodb-when-it-is-available
'programing' 카테고리의 다른 글
CSS 계산()에서 vh 빼기 픽셀을 사용할 수 있습니까? (0) | 2023.08.21 |
---|---|
PL/SQL Developer에서 연결을 유지하는 방법은 무엇입니까? (0) | 2023.08.21 |
봄 콩에서 Http Servlet 요청을 받으려면 어떻게 해야 합니까? (0) | 2023.08.21 |
Set-Cookie 헤더가 Chrome에서 쿠키를 설정하지 않음 (0) | 2023.08.21 |
hashCode()와 getClass()가 네이티브 메서드인 이유는 무엇입니까? (0) | 2023.08.16 |