Résumé
Jobtiens lerreur suivante lorsque je tente dinstaller un nouveau site Craft localement:
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_%"
Ayant juste téléchargé le ZIP, je suppose la version de Craft en question est la dernière au moment de la rédaction (2.1.2563).
Point de défaillance
Après quelques fouilles, lerreur semble être causée par la ligne 59 dans craft/app/etc/behaviors/AppBehavior.php
, en particulier lappel à craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Si cest bien le cas, cela signifie que les vérifications précédentes craft()->getComponent("db")
et craft()->getIsDbConnectionValid()
sont réussies, ce qui me laisse complètement perplexe quant à la cause lerreur.
Informations sur lenvironnement
Le site ne fonctionne (pas) sur une VM Vagrant locale, qui héberge volontiers un autre site Craft sans aucun problème. Il est peut-être intéressant de noter que Je nai pas insta Remplissez lautre site à partir de zéro sur ce serveur.
Les spécifications de base du serveur sont les suivantes:
- Ubuntu 12.04 LTS (64 bits)
- Apache 2.2.22
- PHP 5.4.30
La base de données existe définitivement, et je peux me connecter avec Sequel Pro.
Quelquun Sinon, vous rencontrez ça?
Commentaires
- Avez-vous lu cette discussion?
- Je lai fait. Le site G + recommande explicitement dutiliser SE lors de la recherche daide, et je ne peux ' t soumettre un rapport de bogue via le CP, car il ny a pas (encore) de CP. De plus, je ' ne suggère pas quil sagit dun bogue dans Craft (si cétait le cas, dautres lauraient sans doute déjà rencontré, et P & T laurait probablement corrigé en quelques minutes), donc SE semblait être le forum de discussion le plus approprié.
- Ce nest ' pas tellement une réponse, comme mea culpa. Après avoir complètement détruit la machine virtuelle et reparti de zéro (avec exactement le même provisionnement), le problème sest résolu. Je ' ne sait toujours pas pourquoi cela sest produit, dautant plus que rien na changé en termes de configuration de la VM, mais jaccepterai volontiers cette solution mystérieuse pour linstant. Si jamais je trouve la cause profonde du problème, je ' publierai une réponse réelle.
- @StephenLewis I ' d allez-y et postez cela comme une réponse de toute façon, au cas où cela résoudrait la situation pour quelquun dautre. Si jamais vous trouvez une solution " " appropriée, vous pouvez toujours la modifier.
- @BradBell Jai essayé à lorigine , mais SE a insisté pour que jattende encore 8 heures, puis ce satané Ben Parizek ma volé le tonnerre. Jai ' accepté sa réponse.
Réponse
Pendant cela peut être une réponse insatisfaisante, dans un souci de complétion, cette question a été résolue en détruisant complètement et en reconstruisant exactement la même VM.
Brève discussion sur Twitter à ce sujet ici:
https://twitter.com/monooso/status/487831027327696896
Jai une affection chaleureuse pour la technique on / off. Je « lai même vu réparer des ascenseurs!
Commentaires
- Ce que Ben a dit …
Réponse
Jai vu quelques erreurs aléatoires lors de lutilisation de Craft et Vagrant qui mont rendu fou après le dépannage. Je suis arrivé à la même conclusion que vous, en détruisant la machine et la reconstruction semblaient résoudre le problème, mais ne mont pas tout à fait donné la réponse que je pensais être due.
Jai donc creusé …
Jai trouvé le coupable être la fonctionnalité de synchronisation de Vagrant. À lépoque où Vagrant est arrivé pour la première fois, lun des principaux problèmes était la synchronisation des dossiers avec de nombreux fichiers et répertoires, alias un CMS. Je ne trouve pas le lien direct, mais je pense que certaines personnes ont eu des problèmes avec les outils d’ajout d’invités à la boîte virtuelle.
Je ne dis pas que votre machine à vagabonder est vraiment vieille, ce n’est généralement pas le cas. Cependant, je dis que parfois – je ne sais pas quand et pourquoi – la fonction de synchronisation peut corrompre ou même pas synchroniser les répertoires / fichiers.
Si vous rencontrez à nouveau cela, je massurerais que vous différez les fichiers dans question sur lhôte et la machine invitée. Surtout à la recherche de caractères invisibles.
Aussi intéressant à noter, mais je nai aucune expérience avec cela. Vagrant vous permet dutiliser VMWare en tant que fournisseur qui revendique des performances améliorées. Un inconvénient est que cela coûte 79 $ pour une licence – mais cela sert également à financer le développement futur de Vagrant. Les détails sur le fournisseur VMWare sont ici: