Un amigo me pidió ayuda para instalar un componente de joomla, la bronca era que la extensión JForms al instalarla daba error #1604 en el script de instalación de MySQL, algo así:
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=InnoDB‘ at line 20
Intenté con el google power pero mi amigo ya le había metido tiempo a eso así que después de una o dos búsquedas que no daban con bola no me quedó otra y me metí en las tripas:
Paso uno: descomprimí el zip: com_jforms_0.7_rc2_rev402.zip
Ahí me puse a buscar el script de instalación con el que se hacen las tablas, después de unos minutos di con este:
Path:
..\com_jforms_0.7_rc2_rev402\administrator\components\com_jforms\installation
Archivo:
Install.sql
Y me puse a hacer la table a mano con el PHPMyAdmin. Al final me quedó igualita la exporté y noté que además de que PHPMyAdmin es específico en cosas como el “collation”, todo estaba igual excepto por esta línea:
‘TYPE=InnoDB’
En el export de la DB funcionando lo escribe como:
ENGINE=InnoDB
Voila.
Para ahorrarles un rato de búsqueda los señores de JForms no se han actualizado, TYPE=InnoDB no se utiliza desde MySQL 4.1 y se mantenía para compatibilidad, pero a partir de MySQL 5.4 ya no lo reconoce, así que hay que abrir los scripts de instalación y hacer un find/replace corrigiéndolo
La documentación de MySQL:
http://dev.mysql.com/doc/refman/5.0/es/using-innodb-tables.html
Una liga donde a alguien que le pasó algo similar nos avisa lo mismo:
http://sanchitbahal.wordpress.com/2011/07/25/mysql-typeinnodb-vs-engineinnodb/
Conclusión:
Los señores de JForms deben darle una actualizada a sus componentes 🙂
Tip: Yo utilicé dreamweaver para hacer una busqueda / remplazo en todo el directorio (había otro par de lugares donde estaba incorrecto).