Ich habe Drupal auf MariaDB 5.5.33 ausgeführt. Wenn ich update.php ausführe (nach dem Upgrade von Drupal 6 auf Drupal 7.28), wird folgende Fehlermeldung angezeigt:
Fehlgeschlagen: PDOException: SQLSTATE [42S02]: Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle 'webdb.location_country' existiert nicht: CREATE TABLE {location_country} (
code
CHAR (2) NOT NULL COMMENT 'Primärschlüssel: ISO-Ländercode mit zwei Buchstaben ',name
VARCHAR (255) NOT NULL DEFAULT' 'COMMENT' Full Country Name ', PRIMARY KEY (code
)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT' Von location.module verwaltete Länderdaten. '; Array () indb_create_table () (Zeile 2720 von /home/web/public_html/includes/database/database.inc).
Wenn ich versuche, Befehl auszuführen
CREATE TABLE {location_country} (
code
CHAR (2) NICHT NULL KOMMENTAR 'Primärschlüssel: ISO-Ländercode mit zwei Buchstaben',name
VARCHAR (255) NICHT NULL STANDARD '' KOMMENTAR 'Vollständiger Ländername', PRIMARY KEY (code
)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT 'Von location.module verwaltete Länderdaten.';
In phpMyAdmin erhalte ich eine Fehlermeldung
# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von '{location_country} (
code
CHAR (2) NOT NULL COMMENT' Primärschlüssel: Zwei Buchstaben IS 'in Zeile 1
Aber ich konnte nicht herausfinden, wo das Problem liegt.
Da andere Antworten (einschließlich solcher, die in keiner Weise mit der InnoDB-Engine zu tun haben) auf Fragen zu dieser PDOException als Duplikate markiert sind und auf diese umleiten, ist dies vermutlich der kanonische Ort für Antworten zu diesem Problem.
Ich habe dies mehrmals bei der Deinstallation eines Moduls festgestellt, und die gesuchte Tabelle ist auf der Site nicht vorhanden (weil sie versehentlich gelöscht wurde, weil die Schemadefinition in
.install
oder aus einem anderen Grund einen Tippfehler enthält ).Die einfachste Möglichkeit, dies zu beheben, besteht darin, das Datenbankaktualisierungsskript (
update.php
) manuell auszuführen .Nachdem Ihre Site wieder zum Leben erweckt wurde, sollten Sie versuchen, die Grundursache des Problems herauszufinden und zu beheben.
quelle
Bei Verwendung als Raw-SQL müssen Sie die geschweiften Klammern um den Tabellennamen entfernen.
z.B:
quelle
Dies ist die gleiche Fehlermeldung, die beim Verschieben von Drupal 7 von einem Entwicklungsstandort auf einen anderen Entwicklungsstandort auf meinem Laptop aufgetreten ist. Nachdem ich die Tabellen in der Drupal-Datenbank überprüft hatte, stellte ich fest, dass der vollständige SQL-Speicherauszug nicht importiert wurde (mit Adminer und der Option "Vom Server", adminer.sql).
Suchen Sie nach Drupal 7-Datenbanktabellen, die sich alphabetisch am Ende des SQL-Dumps befinden , z. B .: Benutzer * , Ansichten * , Webformular * , Workbench * , xmlsitemap * , um festzustellen , ob alles importiert wurde.
Ich habe
drush sql-cli < database.sql
den SQL-Dump in die Drupal-Datenbank importiert, nachdem ich alle Datenbanktabellen mit gelöscht hattedrush sql-drop
.quelle