Souhrn

Při pokusu o lokální instalaci nového webu Craft se mi zobrazuje následující chyba:

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_%" 

Po stažení ZIP předpokládám verze dotyčného Craftu je nejnovější v době psaní (2.1.2563).

Bod selhání

Po nějakém kopání se zdá, že chyba byla způsobena řádkem 59 v craft/app/etc/behaviors/AppBehavior.php, konkrétně volání craft()->db->tableExists():

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

Pokud to je skutečně tento případ, znamená to, že předcházející craft()->getComponent("db") a craft()->getIsDbConnectionValid() kontroly procházejí, což mě nechává úplně zmateno, co to způsobuje chyba.

Informace o prostředí

Stránka (ne) běží na místním tuláckém virtuálním počítači, který bez problémů vesele hostuje další Craft stránky. Možná stojí za zmínku, že Insta jsem to neudělal Druhý web bude na tomto serveru úplně od začátku.

Základní specifikace serveru jsou následující:

  • Ubuntu 12.04 LTS (64bitový)
  • Apache 2.2.22
  • PHP 5.4.30

Databáze rozhodně existuje a mohu se k ní připojit pomocí Sequel Pro.

Má někdo jinak do toho narazíte?

Komentáře

  • Přečetli jste si tuto diskusi?
  • Ano. Web G + výslovně doporučuje používat SE při hledání pomoci a nemohu ' t odeslat hlášení o chybě prostřednictvím CP, protože CP (zatím) neexistuje. Také ' nenaznačuji, že se jedná o chybu v Craftu (pokud ano, ostatní by se s ní bezpochyby již setkali a P & T by to pravděpodobně vyřešil během několika minut), takže SE vypadala jako nejvhodnější fórum pro diskusi.
  • Toto není ' taková odpověď, jako mea culpa. Po úplném zničení virtuálního počítače a od nuly (s přesně stejným zřizováním) se problém vyřešil sám. I ' m jsem stále zmatený, proč se to stalo, zejména proto, že se nic nezměnilo, pokud jde o konfiguraci VM, ale prozatím šťastně přijmu toto záhadné řešení. Pokud někdy zjistím příčinu problému, zveřejním ' skutečnou odpověď.
  • @StephenLewis I ' d pokračujte a pošlete to jako odpověď, i když to náhodou vyřeší situaci pro někoho jiného. Pokud někdy najdete " správné " řešení, můžete jej kdykoli upravit.
  • @BradBell Zkoušel jsem původně , ale SE trvala na tom, že počkám dalších 8 hodin, a pak mi ten otravný Ben Parizek ukradl hrom. Jeho odpověď jsem přijal '.

Odpovědět

Zatímco může to být neuspokojivá odpověď, kvůli dokončení byla tato otázka vyřešena úplným zničením a přestavbou přesně stejného VM.

Krátká diskuse o Twitteru zde:

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

Mám vřelou náklonnost k technice zapnutí / vypnutí. Dokonce jsem to viděl opravit výtahy!

Komentáře

  • Co řekl Ben …

Odpověď

Při používání Craft a Vagrant jsem viděl několik náhodných chyb, díky nimž jsem se po řešení potíží cítil ořechově. Došel jsem ke stejnému závěru jako vy, zničil jsem stroj a přestavba se zdálo, že problém vyřeší, ale nedal mi odpověď, kterou jsem cítil, že jsem dlužen.

Takže jsem trochu kopal …

Našel jsem viníka být synchronizační funkcí Vagrantu. Když Vagrant poprvé přišel na scénu, jedním z hlavních problémů byla synchronizace složek s mnoha soubory a adresáři, aka CMS. Nemohu najít přímý odkaz, ale domnívám se, že někteří lidé měli problémy s nástroji pro přidávání hostů do virtuální schránky.

Neříkám, že váš tulácký stroj je opravdu starý, takže tomu tak není. Říkám však, že někdy – nejste si jisti, kdy a proč – může funkce synchronizace poškodit nebo dokonce nesynchronizovat adresáře / soubory.

Pokud na to narazíte znovu, zajistím, abyste soubory v souboru otázka na počítači hostitele a hosta. Zvláště hledám neviditelné postavy.

Za zmínku také stojí, ale mám s tím nulové zkušenosti. Vagrant vám umožňuje používat VMWare jako poskytovatele, který požaduje lepší výkon. Jednou nevýhodou je, že za licenci stojí 79 $ – ale jde také o financování budoucího vývoje Vagrantu. Podrobnosti o poskytovateli VMWare najdete zde:

https://www.vagrantup.com/vmware

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *