Resumen
Me aparece el siguiente error cuando intento instalar un nuevo sitio Craft localmente:
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_%"
Habiendo descargado el ZIP, supongo la versión de Craft en cuestión es la más reciente al momento de escribir este artículo (2.1.2563).
Punto de falla
Después de investigar un poco, el error parece ser causado por la línea 59 en craft/app/etc/behaviors/AppBehavior.php
, específicamente la llamada a craft()->db->tableExists()
:
$this->_isInstalled = (craft()->isConsole() || craft()->db->tableExists("info", false));
Si Ese es de hecho el caso, significa que las anteriores craft()->getComponent("db")
y craft()->getIsDbConnectionValid()
están pasando, lo que me deja completamente desconcertado en cuanto a lo que está causando el error.
Información del entorno
El sitio (no) se está ejecutando en una máquina virtual Vagrant local, que felizmente aloja otro sitio Craft sin problemas. Quizás vale la pena señalar que No lo hice insta Llene el otro sitio desde cero en este servidor.
Las especificaciones básicas del servidor son las siguientes:
- Ubuntu 12.04 LTS (64 bits)
- Apache 2.2.22
- PHP 5.4.30
La base de datos definitivamente existe, y puedo conectarme a ella usando Sequel Pro.
¿Alguien ¿Más se encuentra con esto?
Comentarios
- ¿Ha leído esta discusión?
- Lo hice. El sitio de Google+ recomienda explícitamente usar SE cuando busque ayuda, y no puedo ' enviar un informe de error a través del CP, ya que no hay CP (todavía). Además, ' no estoy sugiriendo que esto sea un error en Craft (si lo fuera, otros sin duda ya lo habrían encontrado, y P & T probablemente lo habría solucionado en minutos), por lo que SE parecía el foro más apropiado para la discusión.
- Esto no es ' t tanto una respuesta, como un mea culpa. Después de destruir completamente la máquina virtual y comenzar desde cero (con exactamente el mismo aprovisionamiento), el problema se resolvió solo. Yo ' todavía estoy desconcertado de por qué sucedió esto, particularmente porque nada ha cambiado en términos de la configuración de la VM, pero aceptaré felizmente esta misteriosa solución por ahora. Si alguna vez descubro la causa raíz del problema, ' publicaré una respuesta real.
- @StephenLewis I ' d continúe y publique eso como respuesta de todos modos, en la remota posibilidad de que resuelva la situación para otra persona. Si alguna vez encuentra una " adecuada " solución, siempre puede editarla.
- @BradBell Probé originalmente , pero SE insistió en que esperara otras 8 horas, y luego ese molesto Ben Parizek me robó el trueno. ' he aceptado su respuesta.
Responder
Mientras puede ser una respuesta insatisfactoria, en aras de la finalización, esta pregunta se resolvió destruyendo por completo y reconstruyendo exactamente la misma VM.
Breve discusión en Twitter sobre esto aquí:
https://twitter.com/monooso/status/487831027327696896
Siento un gran afecto por la técnica de encendido / apagado. ¡Incluso lo he visto arreglar ascensores!
Comentarios
- Lo que dijo Ben …
Respuesta
He visto algunos errores aleatorios al usar Craft y Vagrant que me hicieron sentir loco después de solucionar el problema. Llegué a la misma conclusión que tú, destruyendo la máquina y la reconstrucción parecieron resolver el problema, pero no me dieron la respuesta que sentí que me debían.
Así que investigué un poco …
Encontré al culpable para ser la funcionalidad de sincronización de Vagrant. Cuando Vagrant apareció por primera vez en escena, uno de los principales problemas era sincronizar carpetas con muchos archivos y directorios, también conocido como CMS. No puedo encontrar el enlace directo, pero creo que algunas personas tuvieron problemas con las herramientas de adición de invitados de la caja virtual.
No estoy diciendo que su máquina vagabunda sea realmente vieja, ese no suele ser el caso. Sin embargo, estoy diciendo que a veces, no estoy seguro de cuándo y por qué, la función de sincronización puede dañar o incluso no sincronizar directorios / archivos.
Si se encuentra con esto nuevamente, me aseguraría de que difiera los archivos en pregunta en la máquina host e invitada. Especialmente buscando personajes invisibles.
También es digno de mención, pero no tengo ninguna experiencia con esto. Vagrant le permite utilizar VMWare como el proveedor que afirma un rendimiento mejorado. Una desventaja es que cuesta $ 79 por una licencia, pero también se destina a financiar el desarrollo futuro de Vagrant. Los detalles sobre el proveedor de VMWare están aquí: