SQLSTATE [42S02]: Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle 'core_store' existiert nicht

7

Schätzen Sie, ob mir jemand helfen könnte, da ich stundenlang nach einer Lösung gesucht habe, aber sie sind alle ziemlich vage.

Wenn ich versuche, auf meine Website zuzugreifen, wird folgende Fehlermeldung angezeigt:

Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten. SQLSTATE [42S02]: Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle 'shopstel_magento.core_store' existiert nicht Trace:
# 0 / home / shopstel / public_html / lib / Zend / Db / Statement. php (300): Zend_Db_Statement_Pdo -> _ execute (Array)
# 1 /home/shopstel/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement-> execute (Array)
# 2 / home / shopstel / public_html / lib / Zend / Db / Adapter / Pdo / Abstract.php (238): Zend_Db_Adapter_Abstract-> Abfrage ('SELECT main_ta ...', Array)
# 3 / home / shopstel / public_html / lib / Varien / Db / Adapter /Pdo/Mysql.php(333): Zend_Db_Adapter_Pdo_Abstract-> query ('SELECT `main_ta ...', Array)
# 4 /home/shopstel/public_html/lib/Zend/Db/Adapter/Abstract.php(734): Varien_Db_Adapter_Pdo_Mysql-> query (Object (Varien_Db_Select), Array)
# 5 / home / shopstel / public_html / lib / Varien / Data /Collection/Db.php(779): Zend_Db_Adapter_Abstract-> fetchAll (Object (Varien_Db_Select), Array)
# 6 /home/shopstel/public_html/lib/Varien/Data/Collection/Db.php(696): Varien_Data_Colle (Objekt (Varien_Db_Select))
# 7 /home/shopstel/public_html/lib/Varien/Data/Collection/Db.php(617): Varien_Data_Collection_Db-> getData ()
# 8 / home / shopstel / public_html / app / code / core /Mage/Core/Model/Mysql4/Store/Collection.php(137): Varien_Data_Collection_Db-> load (false, false)
# 9 /home/shopstel/public_html/lib/Varien/Data/Collection.php(740): Mage_Core_Model_Mysql4_Store_Collection-> load ()
# 10 / home / shopstel / public_html / app / code / core / Mage / Core / Model / App .php (581): Varien_Data_Collection-> count ()
# 11 /home/shopstel/public_html/app/code/core/Mage/Core/Model/App.php(429): Mage_Core_Model_App -> _ initStores ()
# 12 / home /shopstel/public_html/app/code/core/Mage/Core/Model/App.php(335): Mage_Core_Model_App -> _ initCurrentStore ('', 'store')
# 13 /home/shopstel/public_html/app/Mage.php (627): Mage_Core_Model_App-> run (Array)
# 14 /home/shopstel/public_html/index.php(80): Mage :: run ('', 'store')
# 15 {main}

Nachdem ich viele Websites gelesen habe, verstehe ich, dass Magento versucht, einen Tisch zu finden, der (aus irgendeinem Grund) nicht existiert. Ich habe meine Website seit etwa einem Jahr nicht mehr aktualisiert / geändert und sogar meinen Host gebeten, meine Datenbank auf das letzte Jahr zurückzusetzen, aber die Fehlermeldung wird weiterhin angezeigt.

Ich bin kein Experte für Codierung, kann aber bestimmte Anweisungen befolgen. Idealerweise möchte ich den Fehler entfernen, ohne Magento neu zu installieren. Ich habe auch irgendwo gelesen, dass core_store eine einfache Tabelle ist. Bitte helfen Sie mir, dieses Problem zu lösen. Lassen Sie mich wissen, wenn Sie weitere Informationen von mir benötigen. Vielen Dank und schätzen Ihre Zeit!

shopstelle
quelle
Können Sie den Namen der Tabellen in dieser Datenbank ermitteln, die im Speicher enden?
Melvyn
Entschuldigung, wie mache ich das? Ich habe die Suchfunktion für 'core_store' verwendet und es gab 0 Ergebnis.
Shopstelle

Antworten:

4

Der Tisch, den Sie suchen, ist ein einfacher Tisch.

Wenn Ihr Host Ihre Datenbank wiederhergestellt hat, scheint die core_storeTabelle nicht darin enthalten zu sein. Es kann auch sein, dass es ein Tabellenpräfix gibt, das hier möglicherweise im Spiel ist oder nicht.

Versuchen Sie diese zuerst:

  1. Überprüfen Sie Ihre Datenbank, um sicherzustellen, dass eine core_storeTabelle (oder eine Variante) verfügbar ist.
  2. Stellen Sie sicher, dass Ihre local.xmlKonfigurationsdatei auf die richtige Datenbank verweist.
  3. Bitten Sie Ihren Host, die Wiederherstellung von einem anderen Wiederherstellungspunkt aus durchzuführen.
  4. Stellen Sie sicher, dass Sie local.xmlkein kürzlich hinzugefügtes oder entferntes Tabellenpräfix haben.

Wenn dies nicht funktioniert, können Sie jederzeit Raw-SQL in Ihrer Datenbank ausführen.

BITTE BEACHTEN SIE: TESTEN SIE DIESE UMGEBUNG VOR DER PRODUKTION AUF EINER NICHT-PRODUKTIONSUMGEBUNG!

Core Store-Tabelle:

CREATE TABLE `core_store` (
  `store_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Store Id',
  `code` varchar(32) DEFAULT NULL COMMENT 'Code',
  `website_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Website Id',
  `group_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Group Id',
  `name` varchar(255) NOT NULL COMMENT 'Store Name',
  `sort_order` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Store Sort Order',
  `is_active` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Store Activity',
  PRIMARY KEY (`store_id`),
  UNIQUE KEY `UNQ_core_store_CODE` (`code`),
  KEY `IDX_core_store_WEBSITE_ID` (`website_id`),
  KEY `IDX_core_store_IS_ACTIVE_SORT_ORDER` (`is_active`,`sort_order`),
  KEY `IDX_core_store_GROUP_ID` (`group_id`),
  CONSTRAINT `FK_core_store_GROUP_ID_core_store_GROUP_GROUP_ID` FOREIGN KEY (`group_id`) REFERENCES `core_store_group` (`group_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `FK_core_store_WEBSITE_ID_WBCORE_WEBSITE_WEBSITE_ID` FOREIGN KEY (`website_id`) REFERENCES `wbcore_website` (`website_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='Stores';

Standardeinträge einfügen:

INSERT INTO `core_store` VALUES (0,'admin',0,0,'Admin',0,1),(1,'default',1,1,'Default Store View',0,1);
Ryan Street
quelle
Ich habe die Suchfunktion für 'core_store' verwendet und sie ergab das Ergebnis 0, oder gibt es einen bestimmten Ordner, den ich mir ansehen soll, damit ich dies schneller identifizieren kann? Mein Host hat es auch aus einer früheren Datenbank wiederhergestellt (2 Monate zuvor), und die Website ist mit dieser Datenbank im Grunde genommen "leer". Die Datei local.xml ist seit einigen Jahren unberührt. Ich werde Ihren SQL-Rohvorschlag mit meinem Host versuchen und mich bei Ihnen melden. Danke für Ihre Hilfe!
Shopstelle
Ich kann keinen
2

Etwas hat sich verändert. Der Trick besteht nicht darin, die Sache durch die Neuerstellung von Dingen noch schlimmer zu machen. Überprüfen Sie zunächst den Ordner var/cacheunter dem Dokumentstamm (dies ist der Ordner mit index.php und dem appOrdner. Wenn var/cachevorhanden und Unterordner wie vorhanden mage---*, benennen Sie ihn var/cachein um var/cache.old. Testen Sie, ob das Problem dadurch behoben wird.

Wenn dies nicht der Fall ist, geben Sie bitte an, welche Tools für die Interaktion mit der Datenbank verfügbar sind. Stellt Ihr Hoster beispielsweise das Tool phpMyadmin zur Verfügung?

Was wir aus Ihrem Bericht wissen Es ist sehr unwahrscheinlich, dass die Tabelle fehlt, es sei denn, Sie haben Ihre Website seit zwei Monaten nicht mehr besucht oder sie wurde in einem externen Cache ausgeführt und niemand hat versucht, eine Bestellung aufzugeben.

Dass die Tabellendefinition gefunden werden kann oder im DDL-Cache zwischengespeichert wird. Wenn Magento eine Datenbanktabelle abfragt, speichert es die Definition der Tabelle im DDL-Cache, dh Datendefinitionssprache.

Dass Ihre Verbindung zur Datenbank funktioniert oder Sie eine Meldung erhalten, dass die Berechtigung zur Datenbank verweigert wird, ein ungültiger Adapter oder eine ungültige Kombination aus Benutzername und Kennwort.

Mögliche Ursachen

  • Cache-Beschädigung
  • Beschädigung der "ibdata" -Datei, wodurch MySQL die Daten nicht finden kann, während die Definition in der ".frm" -Datei aktuell ist.
    • Local.xml wurde geändert und das Präfix entfernt, aber der Zeitstempel der Datei spiegelt dies nicht wider.
Melvyn
quelle
1

Ich kann sagen, dass, wenn Sie eine Sicherungskopie der Datenbank haben, diese Datenbank bitte als Tabellentabelle core_storefehlt. Ich bin zu 100% sicher, dass das Problem gelöst wird.

Ramesh Chauhan
quelle
0

Das Löschen des Ordners var / cache löste dieses Problem sofort für mich. :) :)

jehzlau
quelle