インストール中に、Magentoは次のエラーを生成します。
データベースサーバーはInnoDBストレージエンジンをサポートしていません。
Magentoのすべての依存関係を修正し、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');
}
または、コアハックをしないでください!インストールの前に、インストーラーモデルをソフトにオーバーライドする必要があります。
これを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が古い場合、古い検証がまだ正しいことです。
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;
}
バグはMagento CE 1.8で修正されたため、CEの上記の行を使用してください\ leq 1.7