Riepilogo

Ricevo il seguente errore quando tento di installare un nuovo sito Craft in locale:

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

Avendo appena scaricato lo ZIP, presumo la versione di Craft in questione è lultima al momento della scrittura (2.1.2563).

Punto di errore

Dopo alcuni scavi, lerrore sembra essere causato dalla riga 59 in craft/app/etc/behaviors/AppBehavior.php, in particolare la chiamata a craft()->db->tableExists():

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

Se è effettivamente così, significa che i controlli precedenti craft()->getComponent("db") e craft()->getIsDbConnectionValid() sono stati superati, il che mi lascia completamente sconcertato su ciò che sta causando lerrore.

Informazioni sullambiente

Il sito (non) gira su una VM Vagrant locale, che ospita felicemente un altro sito Craft senza problemi. Forse vale la pena notare che Non ho instaurato Tutto laltro sito da zero su questo server.

Le specifiche del server di base sono le seguenti:

  • Ubuntu 12.04 LTS (64 bit)
  • Apache 2.2.22
  • PHP 5.4.30

Il database esiste sicuramente e posso collegarmi ad esso usando Sequel Pro.

Ha qualcuno altrimenti incappi in questo?

Commenti

  • Hai letto questa discussione?
  • Lho fatto. Il sito G + raccomanda esplicitamente di usare SE quando si cerca aiuto, e non posso ' inviare una segnalazione di bug tramite il CP, poiché non cè (ancora) CP. Inoltre, ' non sto suggerendo che si tratti di un bug in Craft (se lo fosse, altri lo avrebbero senza dubbio già riscontrato, e P & T probabilmente lavrebbe risolto in pochi minuti), quindi SE sembrava il forum di discussione più appropriato.
  • Questa non è ' una risposta, come un mea culpa. Dopo aver completamente distrutto la VM e ricominciato da zero (con lo stesso identico provisioning), il problema si è risolto da solo. ' sono ancora sconcertato dal motivo per cui ciò è accaduto, soprattutto perché non è cambiato nulla in termini di configurazione della VM, ma per ora accetterò felicemente questa misteriosa soluzione. Se riesco a capire la causa principale del problema, ' pubblicherò una risposta effettiva.
  • @StephenLewis I ' d vai avanti e pubblicalo comunque come risposta, nella remota possibilità che risolva la situazione per qualcun altro. Se trovi una " corretta " soluzione, puoi sempre modificarla.
  • @BradBell Ho provato inizialmente , ma SE ha insistito perché aspettassi altre 8 ore, poi quel fastidioso Ben Parizek mi ha rubato il colpo. ' ho accettato la sua risposta.

Risposta

Mentre potrebbe essere una risposta insoddisfacente, per amor di completamento, questa domanda è stata risolta distruggendo e ricostruendo completamente la stessa identica VM.

Breve discussione su Twitter qui:

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

Ho un caldo affetto per la tecnica di accensione / spegnimento. “Lho persino visto aggiustare gli ascensori!

Commenti

  • Quello che ha detto Ben …

Risposta

Ho visto alcuni errori casuali durante lutilizzo di Craft e Vagrant che mi hanno fatto sentire pazzo dopo la risoluzione dei problemi. Sono giunto alla stessa conclusione che hai fatto tu, distruggendo la macchina e la ricostruzione sembravano risolvere il problema, ma non mi hanno dato la risposta che sentivo di dovermi.

Quindi ho scavato un po …

Ho trovato il colpevole per essere la funzionalità di sincronizzazione di Vagrant. Ai tempi in cui Vagrant è apparso per la prima volta sulla scena, uno dei problemi principali era la sincronizzazione delle cartelle con molti file e directory, ovvero un CMS. Non riesco a trovare il collegamento diretto, ma credo che alcune persone abbiano avuto problemi con gli strumenti di aggiunta del guest box virtuale.

Non sto dicendo che la tua macchina vagabonda sia davvero vecchia, tende a non essere il caso. Tuttavia, sto dicendo che a volte – non sono sicuro quando e perché – la funzione di sincronizzazione può danneggiare o addirittura non sincronizzare directory / file.

Se ti imbatti di nuovo, mi assicurerei che diff i file in domanda sulla macchina host e guest. Soprattutto alla ricerca di personaggi invisibili.

Anche degno di nota, ma non ho esperienza con questo. Vagrant ti consente di utilizzare VMWare come provider che dichiara prestazioni migliorate. Uno svantaggio è che costa $ 79 per una licenza, ma serve anche a finanziare lo sviluppo futuro di Vagrant. I dettagli sul provider VMWare sono disponibili qui:

https://www.vagrantup.com/vmware

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *