Zusammenfassung
Beim Versuch, eine neue Craft-Site lokal zu installieren, wird der folgende Fehler angezeigt:
CDbCommand failed to execute the SQL statement: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected. The SQL statement executed was: SHOW TABLES LIKE "craft_%"
Nachdem ich gerade die ZIP-Datei heruntergeladen habe, gehe ich davon aus Die fragliche Version von Craft ist die neueste zum Zeitpunkt des Schreibens (2.1.2563).
Fehlerstelle
Nach einigem Graben scheint der Fehler durch Zeile 59 in verursacht zu werden craft/app/etc/behaviors/AppBehavior.php
, insbesondere der Aufruf von craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
If Dies ist in der Tat der Fall. Dies bedeutet, dass die vorhergehenden Überprüfungen von craft()->getComponent("db")
und craft()->getIsDbConnectionValid()
bestanden werden, was mich völlig verblüfft lässt, was die Ursache ist der Fehler.
Umgebungsinformationen
Die Site wird (nicht) auf einer lokalen Vagrant-VM ausgeführt, auf der problemlos eine andere Craft-Site ohne Probleme gehostet wird Ich habe nicht insta Die andere Site wird auf diesem Server von Grund auf neu erstellt.
Die grundlegenden Serverspezifikationen lauten wie folgt:
- Ubuntu 12.04 LTS (64-Bit)
- Apache 2.2.22
- PHP 5.4.30
Die Datenbank ist definitiv vorhanden, und ich kann mit Sequel Pro eine Verbindung herstellen.
Hat jemand sonst darauf stoßen?
Kommentare
- Haben Sie diese Diskussion gelesen?
- Ich habe es getan. Die G + Site empfiehlt ausdrücklich die Verwendung von SE, wenn Sie Hilfe suchen, und ich kann ' keinen Fehlerbericht über den CP senden, da (noch) kein CP vorhanden ist. Außerdem ' schlage ich nicht vor, dass dies ein Fehler in Craft ist (wenn dies der Fall wäre, wären andere zweifellos inzwischen darauf gestoßen, und P & T hätte es wahrscheinlich in wenigen Minuten behoben), daher schien SE das am besten geeignete Diskussionsforum zu sein.
- Dies ist ' nicht so sehr eine Antwort. als mea culpa. Nachdem die VM vollständig zerstört und von vorne begonnen wurde (mit genau derselben Bereitstellung), löste sich das Problem von selbst. Ich ' bin immer noch verblüfft, warum dies passiert ist, zumal sich an der VM-Konfiguration nichts geändert hat, aber ich werde diese mysteriöse Lösung vorerst gerne akzeptieren. Wenn ich jemals die Grundursache des Problems herausfinde, werde ich ' eine tatsächliche Antwort veröffentlichen.
- @StephenLewis I ' d mach weiter und poste das trotzdem als Antwort, wenn es nicht möglich ist, löst es die Situation für jemand anderen. Wenn Sie jemals eine " richtige " -Lösung finden, können Sie diese jederzeit bearbeiten.
- @BradBell Ich habe es ursprünglich versucht , aber SE bestand darauf, dass ich weitere 8 Stunden warte, und dann stahl dieser nervige Ben Parizek meinen Donner. Ich ' habe seine Antwort akzeptiert.
Antwort
While Es kann eine unbefriedigende Antwort sein. Aus Gründen der Vervollständigung wurde diese Frage gelöst, indem genau dieselbe VM vollständig zerstört und neu erstellt wurde.
Kurze Diskussion auf Twitter hier:
https://twitter.com/monooso/status/487831027327696896
Ich habe eine herzliche Zuneigung für die Ein / Aus-Technik. Ich habe sogar gesehen, wie Aufzüge repariert wurden!
Kommentare
- Was Ben gesagt hat …
Antwort
Ich habe bei der Verwendung von Craft und Vagrant einige zufällige Fehler gesehen, die mich nach der Fehlerbehebung verrückt gemacht haben. Ich bin zu dem gleichen Schluss gekommen wie Sie und habe zerstört Die Maschine und der Wiederaufbau schienen das Problem zu lösen, gaben mir aber nicht die Antwort, die ich für geschuldet hielt.
Also grub ich ein bisschen …
Ich fand den Schuldigen die Synchronisationsfunktionalität von Vagrant zu sein. Als Vagrant zum ersten Mal auf den Markt kam, war eines der Hauptprobleme die Synchronisierung von Ordnern mit vielen Dateien und Verzeichnissen, auch bekannt als CMS. Ich kann den direkten Link nicht finden, aber ich glaube, einige Leute hatten Probleme mit Tools zum Hinzufügen virtueller Box-Gäste.
Ich sage nicht, dass Ihre Vagabundmaschine wirklich alt ist, das ist in der Regel nicht der Fall. Ich sage jedoch, dass die Synchronisierungsfunktion manchmal – nicht sicher, wann und warum – Verzeichnisse / Dateien beschädigen oder sogar nicht synchronisieren kann.
Wenn Sie erneut darauf stoßen, würde ich sicherstellen, dass Sie die Dateien unterscheiden Frage auf dem Host und Gastcomputer. Besonders auf der Suche nach unsichtbaren Charakteren.
Auch erwähnenswert, aber ich habe keine Erfahrung damit. Mit Vagrant können Sie VMWare als Anbieter verwenden, der eine verbesserte Leistung behauptet. Ein Nachteil ist, dass eine Lizenz 79 US-Dollar kostet – aber auch für die Finanzierung der zukünftigen Entwicklung von Vagrant. Details zum VMWare-Anbieter finden Sie hier: