1

私はびっくりしています... Magentoサイトで作業していて、すべてが順調でした。今朝起きて仕事を続けると、サイト全体 (フロントエンドと管理者の両方) でエラーがスローされます。エラーログには次のように書かれています:

a:5:{i:0;s:249:"Error in file: "/home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Admin/sql/admin_setup/    install-1.6.0.0.php" - SQLSTATE[HY000]: General error: 1005 Can't create table 'ameridq4_ecommerce-pursuit-magento.admin_assert' (errno: -1)";i:1;s:1168:"#0 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(421): Mage_Core_Model_Resource_Setup->_modifyResourceDb('install', '', '1.6.1.0')
#2 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(327): Mage_Core_Model_Resource_Setup->_installResourceDb('1.6.1.0')
#3 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/Resource/Setup.php(235): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/App.php(417): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 /home1/ameridq4/public_html/pursuityourself/magento/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#6 /home1/ameridq4/public_html/pursuityourself/magento/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#7 /home1/ameridq4/public_html/pursuityourself/magento/index.php(87): Mage::run('', 'store')
#8 {main}";s:3:"url";s:10:"/magento/e";s:11:"script_name";s:18:"/magento/index.php";s:4:"skin";s:7:"default";}

正常に動作していた昨夜から今朝まで何もしていません... 昨日最後に行ったのは、デフォルトストア名を「デフォルトストア」から「追跡」に変更したことです。何が起こったのか、どのように修正するのか考えていますか?

4

1 に答える 1

2

問題は、外部キー制約があり、テーブルの 1 つが MyISAM であることです。このストレージ エンジンは、外部キー制約をサポートしていません。(ソース)。インストール ファイルは Admin モジュールのファイルなので、Mage_Adminモジュール テーブルを InnoDB に変換してみてください (phpmyadmin またはその他のデータベース クライアントで実行します)。

alter table admin_assert engine=innodb;
alter table admin_role engine=innodb;
alter table admin_rule engine=innodb;
alter table admin_user engine=innodb;

MyISAM ストレージ エンジンが正しくない場合は、他のテーブルも InnoDB に変換する必要がある場合があります。このブログにはそのためのスクリプトがあります (このスクリプトを実行する前にデータベースをバックアップしてください)。catalogsearch_fulltext(MyISAM) と一時テーブル (MEMORY)を除く、Magento コアのすべてのテーブルは InnoDB です。

于 2013-02-03T22:12:38.323 に答える