Resumé
Jeg får følgende fejl, når jeg forsøger at installere et nyt Craft-sted lokalt:
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_%"
Når jeg lige har downloadet ZIP, antager jeg den aktuelle version af Craft er den seneste på skrivningstidspunktet (2.1.2563).
Fejlpunkt
Efter noget grave synes fejlen at være forårsaget af linje 59 i craft/app/etc/behaviors/AppBehavior.php
, specifikt opkaldet til craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Hvis det er faktisk tilfældet, det betyder, at den foregående craft()->getComponent("db")
og craft()->getIsDbConnectionValid()
kontrol passerer, hvilket efterlader mig fuldstændig forvirret over, hvad der forårsager fejlen.
Miljøoplysninger
Webstedet kører (ikke) på en lokal Vagrant VM, der med glæde er vært for et andet Craft-sted uden problemer. Det er måske værd at bemærke, at Jeg fik ikke insta ll det andet sted fra bunden på denne server.
De grundlæggende serverspecifikationer er som følger:
- Ubuntu 12.04 LTS (64-bit)
- Apache 2.2.22
- PHP 5.4.30
Databasen findes bestemt, og jeg kan oprette forbindelse til den ved hjælp af Sequel Pro.
Har nogen ellers løber ind i dette?
Kommentarer
- Har du læst denne diskussion?
- Det gjorde jeg. G + -stedet anbefaler eksplicit at bruge SE, når jeg søger hjælp, og jeg kan ' ikke indsende en fejlrapport via CP, da der endnu ikke er CP. Jeg ' foreslår ikke, at dette er en fejl i Craft (hvis det var, ville andre uden tvivl have stødt på det nu, og P & T ville sandsynligvis have rettet det på få minutter), så SE virkede som det mest passende forum til diskussion.
- Dette er ikke ' t så meget et svar, som en mea culpa. Efter fuldstændig destruktion af VM og start fra bunden (med nøjagtig samme klargøring) løste problemet sig selv. Jeg ' er stadig forvirret over, hvorfor dette skete, især da intet har ændret sig med hensyn til VM-konfigurationen, men vil med glæde acceptere denne mystiske løsning for nu. Hvis jeg nogensinde finder ud af årsagen til problemet, sender jeg ' et faktisk svar.
- @StephenLewis I ' d gå videre og post det som et svar alligevel, hvis det er tilfældet løser det situationen for en anden. Hvis du nogensinde finder en " korrekt " løsning, kan du altid redigere den.
- @BradBell Jeg prøvede oprindeligt , men SE insisterede på, at jeg ventede i yderligere 8 timer, og så stjal den irriterende Ben Parizek mit torden. Jeg ' har accepteret hans svar.
Svar
Mens det kan være et utilfredsstillende svar, for afslutnings skyld blev dette spørgsmål løst ved fuldstændig at ødelægge og genopbygge den nøjagtige samme VM.
Kort diskussion på Twitter om det her:
https://twitter.com/monooso/status/487831027327696896
Jeg har en varm hengivenhed for on / off-teknikken. Jeg har endda set det rette elevatorer!
Kommentarer
- Hvad Ben sagde …
Svar
Jeg har set et par tilfældige fejl, når jeg bruger Craft og Vagrant, der fik mig til at føle mig nutty efter fejlfinding. Jeg kom til den samme konklusion, som du gjorde og ødelagde maskinen og genopbygningen så ud til at løse problemet, men gav mig ikke helt det svar, jeg følte, at jeg skyldte.
Så jeg gravede noget …
Jeg fandt synderen at være synkroniseringsfunktionen i Vagrant. Tilbage, da Vagrant først kom på scenen, var et af de største problemer synkronisering af mapper med mange filer og mapper, også kaldet et CMS. Jeg kan ikke finde det direkte link, men jeg tror, at nogle mennesker havde problemer med virtuelle boks-gæstetilpasningsværktøjer.
Jeg siger ikke, at din vagrantmaskine er rigtig gammel, det har ikke tendens til at være tilfældet. Jeg siger dog, at synkroniseringsfunktionen undertiden – ikke sikker på hvornår og hvorfor – kan ødelægge eller endda ikke synkronisere kataloger / filer.
Hvis du løber ind i dette igen, vil jeg sørge for at diffe filerne i spørgsmål om værts- og gæstemaskinen. Især på udkig efter usynlige tegn.
Også værd at bemærke, men jeg har ingen erfaring med dette. Vagrant giver dig mulighed for at bruge VMWare som den udbyder, der hævder forbedret ydeevne. En ulempe er, at det koster $ 79 for en licens – men det går også til at finansiere fremtidig udvikling af Vagrant. Detaljer om VMWare-udbyderen er her: