Podsumowanie

Podczas próby lokalnej instalacji nowej witryny Craft pojawia się następujący błąd:

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

Zakładam, że po pobraniu pliku ZIP wersja Craft, o której mowa, jest najnowsza w chwili pisania tego tekstu (2.1.2563).

Miejsce awarii

Po pewnym czasie błąd wydaje się być spowodowany przez wiersz 59 w craft/app/etc/behaviors/AppBehavior.php, a konkretnie wywołanie craft()->db->tableExists():

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

Jeśli w istocie tak jest, oznacza to, że poprzednie kontrole craft()->getComponent("db") i craft()->getIsDbConnectionValid() kończą się pomyślnie, co wprawia mnie w kompletne zdumienie, co powoduje błąd.

Informacje o środowisku

Witryna (nie) działa na lokalnej maszynie wirtualnej Vagrant, która szczęśliwie obsługuje inną witrynę Craft bez żadnych problemów. Może warto to zauważyć Nie od razu cała inna witryna na tym serwerze.

Podstawowe specyfikacje serwera są następujące:

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

Baza danych na pewno istnieje i mogę się z nią połączyć za pomocą Sequel Pro.

Czy ktoś w przeciwnym razie napotkasz to?

Komentarze

  • Czy czytałeś dyskusję?
  • Tak. Witryna G + wyraźnie zaleca używanie SE podczas szukania pomocy i nie mogę ' nie przesyłać raportu o błędzie przez CP, ponieważ (jeszcze) nie ma CP. Ponadto ' nie sugeruję, że jest to błąd w Craft (gdyby tak było, inni bez wątpienia już by go napotkali, a P & T prawdopodobnie naprawiłoby to w ciągu kilku minut), więc SE wydawało się najwłaściwszym forum do dyskusji.
  • To nie jest ' zbyt wiele odpowiedzi, jako mea culpa. Po całkowitym zniszczeniu maszyny wirtualnej i rozpoczęciu od zera (z dokładnie taką samą obsługą administracyjną) problem sam się rozwiązał. ' Wciąż nie rozumiem, dlaczego tak się stało, zwłaszcza że nic się nie zmieniło w zakresie konfiguracji maszyny wirtualnej, ale na razie z radością zaakceptuję to tajemnicze rozwiązanie. Jeśli kiedykolwiek znajdę główną przyczynę problemu, ' opublikuję właściwą odpowiedź.
  • @StephenLewis I ' d śmiało i opublikuj to jako odpowiedź tak czy inaczej, jeśli nie ma szans, rozwiąże to sytuację dla kogoś innego. Jeśli kiedykolwiek znajdziesz " właściwe " rozwiązanie, zawsze możesz je edytować.
  • @BradBell. , ale SE nalegał, żebym poczekał kolejne 8 godzin, a potem ten nieznośny Ben Parizek ukradł mi grzmot. ' zaakceptowałem jego odpowiedź.

Odpowiedź

Chociaż może to być niezadowalająca odpowiedź, aby zakończyć, to pytanie zostało rozwiązane przez całkowite zniszczenie i odbudowanie dokładnie tej samej maszyny wirtualnej.

Krótka dyskusja na ten temat na Twitterze tutaj:

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

Jestem bardzo zadowolony z techniki włączania / wyłączania. Widziałem nawet, jak naprawiało windy!

Komentarze

  • Co powiedział Ben …

Odpowiedź

Podczas korzystania z Craft i Vagrant zauważyłem kilka przypadkowych błędów, które sprawiły, że poczułem się oszołomiony po rozwiązaniu problemu. Doszedłem do tego samego wniosku, co Ty, niszcząc Wydawało się, że maszyna i jej przebudowa rozwiązały problem, ale nie dały mi odpowiedzi, którą czułem, że mi się należy.

Więc poszperałem …

Znalazłem winnego być funkcją synchronizacji Vagrant. Kiedy Vagrant po raz pierwszy pojawił się na scenie, jednym z głównych problemów była synchronizacja folderów z dużą ilością plików i katalogów, czyli CMS. Nie mogę znaleźć bezpośredniego linku, ale wydaje mi się, że niektórzy ludzie mieli problemy z narzędziami do dodawania gości w wirtualnych skrzynkach.

Nie mówię, że twoja maszyna włóczęga jest naprawdę stara, co zwykle nie ma miejsca. Jednak mówię, że czasami – nie jestem pewien, kiedy i dlaczego – funkcja synchronizacji może uszkodzić lub nawet nie zsynchronizować katalogów / plików.

Jeśli napotkasz to ponownie, upewnię się, że porównasz pliki w pytanie na komputerze hosta i gościa. Szczególnie szukanie niewidzialnych postaci.

Też warte odnotowania, ale nie mam z tym żadnego doświadczenia. Vagrant umożliwia korzystanie z VMWare jako dostawcy, który twierdzi, że poprawia wydajność. Jedną wadą jest to, że licencja kosztuje 79 USD – ale idzie również na finansowanie przyszłego rozwoju Vagrant. Szczegóły dotyczące dostawcy VMWare znajdują się tutaj:

https://www.vagrantup.com/vmware

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *