Sammanfattning

Jag får följande fel när jag försöker installera en ny Craft-webbplats 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_%" 

Efter att ha laddat ner ZIP, antar jag versionen av Craft ifråga är den senaste i skrivande stund (2.1.2563).

Felpunkt

Efter en del grävning verkar felet orsakas av rad 59 i craft/app/etc/behaviors/AppBehavior.php, särskilt samtalet till craft()->db->tableExists():

$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false)); 

Om så är det faktiskt, det betyder att föregående craft()->getComponent("db") och craft()->getIsDbConnectionValid() kontroller passerar, vilket gör att jag är helt förbryllad om vad som orsakar felet.

Miljöinformation

Webbplatsen körs (inte) på en lokal Vagrant VM, som gärna är värd för en annan Craft-webbplats utan problem. Det är kanske värt att notera att Jag installerade inte Den andra webbplatsen kommer från grunden på den här servern.

De grundläggande serverspecifikationerna är följande:

  • Ubuntu 12.04 LTS (64-bitars)
  • Apache 2.2.22
  • PHP 5.4.30

Databasen finns definitivt och jag kan ansluta till den med Sequel Pro.

Har någon annars stöter på det här?

Kommentarer

  • Har du läst denna diskussion?
  • Det gjorde jag. G + -sajten rekommenderar uttryckligen att använda SE när jag söker hjälp, och jag kan ' inte skicka en felrapport via CP, eftersom det inte finns någon CP (ännu). Jag ' föreslår inte att det här är ett fel i Craft (om det var så skulle andra utan tvekan ha stött på det nu och P & T skulle förmodligen ha fixat det på några minuter), så SE verkade som det mest lämpliga forumet för diskussion.
  • Detta är inte ' t så mycket ett svar, som en mea culpa. Efter att ha förstört den virtuella datorn och börjat från grunden (med exakt samma provisionering) löste problemet sig själv. Jag ' är fortfarande förvirrad över varför detta hände, särskilt eftersom ingenting har förändrats när det gäller VM-konfigurationen, men kommer med glädje att acceptera denna mystiska lösning för tillfället. Om jag någonsin räknar ut orsaken till problemet lägger jag ' ett faktiskt svar.
  • @StephenLewis I ' d fortsätt och lägg upp det som ett svar ändå, om det löser situationen för någon annan. Om du någonsin hittar en " rätt " lösning kan du alltid redigera den.
  • @BradBell Jag försökte ursprungligen , men SE insisterade på att jag väntade i ytterligare 8 timmar, och sedan stal den irriterande Ben Parizek min åska. Jag ' har accepterat hans svar.

Svar

Medan det kan vara ett otillfredsställande svar, för kompletteringens skull löstes denna fråga genom att helt förstöra och bygga om exakt samma virtuella dator.

Kort diskussion på Twitter om det här:

https://twitter.com/monooso/status/487831027327696896

Jag har en varm kärlek till på / av-tekniken. Jag har till och med sett det fixa hissar!

Kommentarer

  • Vad Ben sa …

Svar

Jag har sett några slumpmässiga fel när jag använder Craft och Vagrant som fick mig att känna mig nötig efter felsökning. Jag kom till samma slutsats som du gjorde och förstörde maskinen och ombyggnaden tycktes lösa problemet men gav mig inte riktigt svaret jag kände att jag var skyldig.

Så jag grävde …

Jag hittade den skyldige för att vara synkroniseringsfunktionen för Vagrant. Tillbaka när Vagrant först kom på scenen var ett av de viktigaste problemen att synkronisera mappar med många filer och kataloger, aka CMS. Jag kan inte hitta den direkta länken men jag tror att vissa människor hade problem med virtuella box-gästtilläggsverktyg.

Jag säger inte att din vagrantmaskin är riktigt gammal, det tenderar inte att vara fallet. Men jag säger att ibland – inte säker på när och varför – synkroniseringsfunktionen kan skada eller till och med inte synkronisera kataloger / filer.

Om du stöter på det här igen skulle jag se till att du skiljer filerna i fråga på värd- och gästmaskinen. Särskilt ute efter osynliga karaktärer.

Också värt att notera, men jag har ingen erfarenhet av detta. Vagrant låter dig använda VMWare som leverantör som hävdar förbättrad prestanda. En nackdel är att det kostar $ 79 för en licens – men det går också till att finansiera framtida utveckling av Vagrant. Detaljer om VMWare-leverantören finns här:

https://www.vagrantup.com/vmware

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *