Sammendrag
Jeg får følgende feil når jeg prøver å installere et nytt Craft-nettsted 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_%"
Etter å ha lastet ned ZIP, antar jeg den aktuelle versjonen av Craft er den siste i skrivende stund (2.1.2563).
Feilpunkt
Etter litt graving ser det ut til at feilen er forårsaket av linje 59 i craft/app/etc/behaviors/AppBehavior.php
, spesielt samtalen til craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Hvis det er faktisk tilfelle, det betyr at de foregående craft()->getComponent("db")
og craft()->getIsDbConnectionValid()
kontrollene går, noe som etterlater meg helt forvirret om hva som forårsaker feilen.
Miljøinformasjon
Nettstedet kjører (ikke) på en lokal Vagrant VM, som gjerne er vert for et annet Craft-nettsted uten problemer. Det er kanskje verdt å merke seg at Jeg insta ikke Det andre nettstedet fra bunnen av på denne serveren.
De grunnleggende server-spesifikasjonene er som følger:
- Ubuntu 12.04 LTS (64-bit)
- Apache 2.2.22
- PHP 5.4.30
Databasen eksisterer definitivt, og jeg kan koble til den ved hjelp av Sequel Pro.
Har noen annet kjøre inn i dette?
Kommentarer
- Har du lest denne diskusjonen?
- Det gjorde jeg. G + -siden anbefaler eksplisitt å bruke SE når jeg søker hjelp, og jeg kan ' t sende inn en feilrapport via CP, ettersom det ikke er CP (ennå). Jeg ' antyder ikke at dette er en feil i Craft (hvis det var, ville andre utvilsomt ha opplevd det nå, og P & T ville sannsynligvis ha løst det på få minutter), så SE virket som det mest passende forumet for diskusjon.
- Dette er ikke ' t så mye svar, som en mea culpa. Etter å ha ødelagt VM fullstendig, og startet fra bunnen av (med nøyaktig samme klargjøring), løste problemet seg selv. Jeg ' er fortsatt forvirret over hvorfor dette skjedde, spesielt ettersom ingenting har endret seg når det gjelder VM-konfigurasjonen, men vil med glede godta denne mystiske løsningen for nå. Hvis jeg noen gang finner ut årsaken til problemet, sender jeg ' et faktisk svar.
- @StephenLewis I ' d fortsett og legg ut det som et svar uansett, hvis det løser situasjonen for noen andre. Hvis du noen gang finner en " riktig " løsning, kan du alltid redigere den.
- @BradBell, jeg prøvde opprinnelig , men SE insisterte på at jeg ventet i ytterligere 8 timer, og så stjal den irriterende Ben Parizek tordnet mitt. Jeg ' har godtatt svaret hans.
Svar
Mens det kan være et lite tilfredsstillende svar, for fullførelsens skyld ble dette spørsmålet løst ved å ødelegge og gjenoppbygge nøyaktig samme virtuelle maskin.
Kort diskusjon på Twitter om det her:
https://twitter.com/monooso/status/487831027327696896
Jeg har en varm hengivenhet for av / på-teknikken. Jeg har til og med sett det fikse heiser!
Kommentarer
- Hva Ben sa …
Svar
Jeg har sett noen tilfeldige feil når jeg brukte Craft og Vagrant som fikk meg til å føle meg nøtt etter feilsøking. Jeg kom til den samme konklusjonen som du gjorde og ødela maskinen og ombyggingen så ut til å løse problemet, men ga meg ikke helt svaret jeg følte at jeg skyldte meg.
Så jeg gravde litt …
Jeg fant den skyldige. å være synkroniseringsfunksjonaliteten til Vagrant. Da Vagrant først kom på scenen, var et av de viktigste problemene synkronisering av mapper med mange filer og kataloger, også kalt CMS. Jeg finner ikke den direkte lenken, men jeg tror noen mennesker hadde problemer med virtuelle boksgjestetilleggsverktøy.
Jeg sier ikke at den omstreifende maskinen din er veldig gammel, det pleier ikke å være tilfelle. Imidlertid sier jeg at synkroniseringsfunksjonen noen ganger – ikke sikker på når og hvorfor – kan ødelegge eller til og med ikke synkronisere kataloger / filer.
Hvis du støter på dette igjen, vil jeg sørge for at du diffiserer filene i spørsmål på verts- og gjestemaskinen. Spesielt på jakt etter usynlige tegn.
Også verdt å merke seg, men jeg har null erfaring med dette. Vagrant lar deg bruke VMWare som leverandør som hevder forbedret ytelse. En ulempe er at det koster $ 79 for en lisens – men det går også til å finansiere fremtidig utvikling av Vagrant. Detaljer om VMWare-leverandøren er her: