Rezumat
Primesc următoarea eroare când încerc să instalez local un nou site Craft:
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_%"
După ce am descărcat ZIP-ul, presupun versiunea Craft în cauză este cea mai recentă la momentul scrierii (2.1.2563).
Punct de eșec
După câteva sapături, eroarea pare a fi cauzată de linia 59 din craft/app/etc/behaviors/AppBehavior.php
, în special apelul către craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Dacă acesta este într-adevăr cazul, înseamnă că verificările craft()->getComponent("db")
și craft()->getIsDbConnectionValid()
precedente trec, ceea ce mă lasă complet nedumerit cu privire la ceea ce cauzează eroarea.
Informații despre mediu
Site-ul rulează (nu) pe o mașină virtuală Vagrant locală, care găzduiește fericit un alt site Craft fără probleme. Poate că merită remarcat faptul că Nu am insta Vom completa celălalt site de la zero pe acest server.
Specificațiile de bază ale serverului sunt următoarele:
- Ubuntu 12.04 LTS (64 de biți)
- Apache 2.2.22
- PHP 5.4.30
Baza de date există cu siguranță și mă pot conecta la ea folosind Sequel Pro.
Are cineva altceva se confruntă cu asta?
Comentarii
- Ați citit această discuție?
- Am făcut-o. Site-ul G + recomandă în mod explicit utilizarea SE atunci când caut ajutor și nu pot ' să trimit un raport de eroare prin CP, deoarece nu există niciun CP (încă). De asemenea, nu ' nu sugerez că este vorba de o eroare în Craft (dacă ar fi fost, alții l-ar fi întâlnit fără îndoială până acum și P & T l-ar fi rezolvat probabil în câteva minute), așa că SE părea cel mai potrivit forum pentru discuții.
- Acesta nu este ' atât de mult un răspuns, ca o mea culpa. După distrugerea completă a VM-ului și pornirea de la zero (cu exact același aprovizionare), problema s-a rezolvat. ' încă nedumerit de ce s-a întâmplat acest lucru, mai ales că nimic nu s-a schimbat în ceea ce privește configurația VM, dar voi accepta cu bucurie această soluție misterioasă deocamdată. Dacă aflu vreodată cauza principală a problemei, ' voi posta un răspuns real.
- @StephenLewis I ' d mergeți mai departe și postați-l ca răspuns oricum, cu ocazia să rezolve situația pentru altcineva. Dacă găsiți vreodată o soluție " adecvată ", o puteți edita oricând.
- @BradBell Am încercat inițial , dar SE a insistat să mai aștept încă 8 ore, iar apoi acel neplăcut Ben Parizek mi-a furat tunetul. Am ' i-am acceptat răspunsul.
Răspuns
În timp ce poate fi un răspuns nesatisfăcător, de dragul finalizării, această întrebare a fost rezolvată prin distrugerea și reconstruirea completă a aceleiași VM.
Scurtă discuție pe Twitter aici:
https://twitter.com/monooso/status/487831027327696896
Am o afecțiune caldă pentru tehnica on / off. „Am văzut chiar că repară lifturile!
Comentarii
- Ce a spus Ben …
Răspuns
Am văzut câteva erori aleatorii atunci când folosesc Craft și Vagrant care m-au făcut să mă simt prost după rezolvarea problemelor. Am ajuns la aceeași concluzie pe care ați făcut-o, distrugând mașina și reconstrucția păreau să rezolve problema, dar nu mi-a dat destul răspunsul pe care am simțit că-l datorez.
Așa că am făcut câteva săpături …
Am găsit vinovatul să fie funcționalitatea de sincronizare a Vagrant. Când Vagrant a intrat pentru prima dată pe scenă, una dintre problemele majore a fost sincronizarea folderelor cu o mulțime de fișiere și directoare, alias un CMS. Nu pot găsi legătura directă, dar cred că unii oameni au avut probleme cu instrumentele de adăugare a oaspeților virtuali.
Nu spun că aparatul tău vagabond este cu adevărat vechi, așa ceva nu tinde. Cu toate acestea, spun că uneori – nu sunt sigur când și de ce – funcția de sincronizare poate corupe sau chiar nu sincroniza directoarele / fișierele. întrebare pe aparatul gazdă și invitat. Mai ales în căutarea personajelor invizibile.
De asemenea, demn de remarcat, dar nu am experiență în acest sens. Vagrant vă permite să utilizați VMWare ca furnizor care pretinde performanțe îmbunătățite. Un dezavantaj este că costă 79 USD pentru o licență – dar se îndreaptă și către finanțarea dezvoltării viitoare a Vagrant. Detalii despre furnizorul VMWare sunt aici: