Habilitando InnoDB en MySQL

Este manual va para los que son usuarios del Mysql que empiezan, en especial para los que por facilidad utilizan el AppServ en cualquier versión.

Empezare por mi problema cuando leía un manual sobre integridad referencial, pues necesitaba utilizar bases de datos del tipo INNOBD, o en todo caso del tipo BDB (Berkeley Data Base), pues al momento de crear la tabla del siguiente modo:

CREATE TABLE Prueba
(
id int not null auto_increment,
nombre varchar(100),
primary key(id)
) ENGINE = InnoDB;

Pues por defecto las tablas en Mysql antes de la versión 5.0.2, están configuradas para el Tipo MyISAM, entonces para que puedan ser InnoBD debemos declara de la forma ENGINE = InnoDB, como en el ejemplo, pero el problema en especial en los que instalan los AppServ es que la configuración en el my.ini que se encuentra en la Carpeta C:/Windows se le agrega la siguiente línea:

skip-innodb(*)

Lo que hace esta línea es que no permite crear tablas en el formato InnoDB, lo que no nos permite trabajar con integridad referencial, a diferencia de las versiones posteriores que agregan en el my.ini, que se encuentra en C:/Archivos de Programas/Mysql/Mysql Server 5.0 en especial en los instaladores independientes las siguientes líneas:

# The default storage engine that will be used when create new tables when default-storage-engine=INNODB(**)

Estas a diferencia de las anteriores lo que permite es que todas las tablas que se crean sean del Tipo InnoDB por defecto, claro esta que las tablas del sistema las que vienen en el Mysql, deben ser del Tipo MyISAM ya que estas trabajan en este tipo, explicado las instalaciones vayamos a las soluciones.

Bueno la más fácil seria cambiar la primera línea (*) por la segunda (**), pero que pasaría si deseamos crear tablas del Tipo MyISAM, pues tendríamos que declarar al crear la tabla de la forma siguiente:

CREATE TABLE Prueba
(
id int not null auto_increment,
nombre varchar(100),
primary key(id)
) ENGINE = MyISAM;

Esto tal vez les genere un problema para los que generalmente crean sus tablas en el tipo MyISAM, entonces en el archivo my.ini se debe solamente borrar la línea de Skip-innoDB o comentarla para que nos permita crear tablas del tipo InnoDB, y el problemita ya esta solucionado.

Antes de terminar como nos aseguramos que tenemos soporte para el tipo InnoDB, pues simplemente ejecutamos la siguiente sentencia:

SHOW VARIABLES LIKE '%innodb%';

La que mostrara entre otras cosa lo siguiente:

+---------------------------------+------------------------+ 
| Variable_name | Value | 
+---------------------------------+------------------------+ 
| have_innodb | YES | 
…..

Esta nos permite saber si esta o no habilitado esta característica y así poder solucionar el problema si es que lo tenemos.

Ahora ya esta solucionado, a trabajar con las tablas InnoBD, así poder hacer Integridad referencial, la que nos permite usar Primary Key, o Foreign Key. Bueno para terminar disculpas por la falta de orden y por no ser tan claro, espero les sirva de algo este manual.

Autor

Russvell Oblitas Valenzuela

Bch. Sistemas e Informática

Compartir

Comentarios

nelson

17/8/2007
-gracias por el articulo. En cuanto al MySQL se esta convirtiendo en uno de los mas grandes sitemas gestores de BD al incluir INNOB para la integridad referencial.

Ysrael Mertz

22/8/2007
Si, está bien, ahora ya podemos trabajar con tablas InnoDB pero la pregunta es ¿De qué nos sirve si la mayoría de los servicios Hosting no trabajan aún con MySQL 5.0?

José María

11/2/2009
A mí sí que me ha servido el artículo para aprender a activar el motor InnoDB a la hora de crear una tabla. Uso MySQL 5.1 y aunque teóricamente está activado por defecto este motor, lo cierto es que hasta que no lo he activado explícitamente en el "CREATE TABLE (...) ENGINE = InnoDB" no ha monitorizado si realmente se cumplían las restricciones de integridad referencial a la hora de insertar una fila. ¡Muchísimas gracias!

Jowo

09/7/2009
Gracias
Gracias, me sirvió muy bien tu artículo.

nico

20/8/2009
Una duda
Hola. Comenté la linea skip-innodb pero lo sigo viendo deshabilitado.
Tengo que reiniciar algo?
Gracias.

comker

25/9/2009
Ver el cambio a InnoDB
Nico, para ver el cambio a la habilitación del motor InnoDB, debes parar el servicio de MySql y luego iniciarlo nuevamente. Si utilizas AppServ, lo haces desde:

Todos los programas-> Appserv-> Control server by service-> MySql Start.

luego...

Todos los programas-> Appserv-> Control server by service-> MySql Stop.

Saludos y buen artículo.

Jorge

12/1/2010
Habilitar innodb
Gracias por tu interes en ayudarnos en esta inquietud !!!

dimcraft

03/12/2010
GRACIAS
gracias... me sirvio de muuchoo..

Maximiliano Davi

16/10/2011
tablas innodb
Buen aporte, ahora puedo crear tablas innodb. GRACIAS!!