Hace algunos días un alumno Rodolfo Ramírez Vázquez  me dejo una pregunta en uno de los artículos de este blog,  puntualmente en el artículo donde explicábamos como crear la base de datos y tablas del ejercicio de sistema de ventas. (http://www.cursostapachula.com/blog/2011/10/crear-base-de-datos-y-tablas-ejercicio-2-%e2%80%9csistema-de-ventas%e2%80%9d/). En la creación de cada una de las tablas de dicha base de datos, al final de la definición de cada tabla establecíamos el motor con la que se generarían “engine=innodb”, y la pregunta que me hicieron era que como podríamos hacer que dicho motor “innodb” fuera por default para la creación de las tablas de una base de datos. MySQL a partir de la versión 5.5 crea sus tablas por defecto con el motor Innodb, en versiones anteriores el motor por defecto en versiones anterior de MySQL era MyISAM, vamos a comprobarlo creando una tabla sin especificar el motor:

Como podemos apreciar en la captura anterior, creamos una tabla llamada editorial, pero al finalizar la tabla no especificamos con que motor se crearía. La siguiente instrucción que se ejecuto fue un “show create table editorial”, para mostrar cómo fue creada la tabla y con esta instrucción nos muestra el motor con la que fue hecha, podemos apreciar que es innodb.

Esto es porque como ya se menciono, a partir de la versión 5.5 MySQL adopta como motor por defecto Innodb, si deseas saber que versión de MySQL posees, realiza la siguiente consulta:

show variables like ‘version’;

Veamos qué arroja:

Estamos observando dentro de las variables de entorno de MySQL la variable “versión” que es la que posee la versión de MySQL que tenemos instalada. Y es 5.5.16, por lo que el motor por defecto es innodb. Para aclarar más el punto podemos listar la lista de motores disponible en mysql y ver cuál es el que está habilitado por defecto para la creación de las tablas, eso lo haríamos con la consulta “show engines;” Veamos:

Podemos apreciar en la captura anterior que Innodb está marcado “DEFAULT” como el motor predeterminado, soporta transacciones y foreign keys, por estas dos últimas características es por lo cual lo estamos usando en la generación de las tablas. Además podemos apreciar el resto de los motores disponibles para nuestra versión de mysql y breve reseña de las características de cada uno.

Ahora saltara la duda de cómo convertir un motor de los que tenemos en predeterminado. Para esto se tiene que hacer modificaciones en el archivo de configuración de MySQL, en versiones para Linux se llama “my.cnf” , nosotros estamos utilizando WAMP SERVER, por lo que el archivo de configuración de MySQL aquí se llama my.ini y está en la ruta:  “C:wampbinmysqlmysql5.5.16”. Lo buscamos y lo abrimos con el bloc de notas.

Antes de abrir el archivo de configuración, te recomiendo que cierres la consola de MySQL y detengas el servicio,  o demonio si estas en Linux. Una vez abierto tendremos que agregarle una línea:

default-storage-engine=

Después del signo igual ponemos el motor que queremos que use por defecto MySQL, puede ser cualquier de los que aparecieron cuando ejecutamos la consulta “show engines;” (FEDERATED, MRG,MYISAM, MyISAM, BLACKHOLE, MEMORY, ARCHIVE, INNODB Y PERMORMANCE_SCHEMA) vamos a probarlo con el motor “ARCHIVE”, Guardamos el archivo y volvemos a iniciar nuestro servicio MySQL.

Una vez iniciado de nuevo nuestro servicio, creamos cualquier tabla sin especificar un motor y luego mostramos la forma en que fue creada la tabla (show create table) para ver si los cambios surtieron efecto:

Como podemos apreciar en la captura anterior creamos una tabla llamada perro y no especificamos el motor con lo que queremos crearla, al momento que hacemos una descripción de cómo fue creada la tabla con el comando “show create table” podemos apreciar que el motor que posee la tabla es “ARCHIVE”.

Si volvemos a hacer un “show engines;” podremos apreciar que el motor marcado por default es “ARCHIVE”:

Ahora si queremos convertir tablas de un motor a otro lo podemos hacer con un alter veamos:

Primero vemos con un “show create table perro;” que motor tiene la tabla perro y vemos que es “ARCHIVE”, después ejecutamos un “alter tale perro engine=innodb;” para cambiar el motor ARCHIVE que tiene la tabla por el motor innodb, finalmente volvermos a hacer un “show create table perro;” y vemos que el motor de la tabla ahora ya es innodb.

Con esto creo que queda resulta la duda de mi buen amigo Rodolfo, y espero que les sirva la información a algún otro. Estamos para servirle, como siempre, dejen comentarios en el libro de visitas, donde pueden externar dudas o preguntas.

Powered By DT Author Box

Written by chris

Motor por Defecto en MySQL.

3 thoughts on “Motor por Defecto en MySQL.

  • Salulinux prof…

    Pues que le puedo decir, más que agradecerle el tiempo que se tomó en realizar el post y pues resolver mi duda, la información que aquí presenta es de lo mejor, siempre me ha gustado leer sus post porque aclara cada paso sin dejar dudas y más aun, porque postea información bastante buena y muy útil. Ya quisiera postear así, pero bueno ahí la llevamos. ejjej

    Este post como todos los demás no se queda atrás, las instrucciones que usó no me las sabia, y más la forma de cambiar los motores de base de datos, eso es perfect.

    Me llamó más la atención modificarlo en un ambiente Linux que en uno Windows. Quiero enfocarme un poco más en las distros Libres.

    Ya había escuchado y leído un poco acerca del cambio del motor de B.D. pero no había encontrado información que me explicara bien. Hasta hoy.

    De antemano gracias, y considero que esta información ayudara a más de una persona.

    Gracias por la aclaración a mi duda, en verdad se le agradece.

    Esperamos seguir leyendo tan buenos post. Estos sí que valen la pena ser leídos.

    Que ande de lo mejor, salulinux de parte de su cuate el buen SAT

    1. Que más puedo decir mi buen SAT, no agradezcas el tiempo, lo hace uno con gusto, ojala que tuviera más afluencia este blog y más preguntas… pero de momento no es así!! haber que podemos hacer para puntear! te comentaba que el mysql viene con un script que hace la chamba de cambiarles el motor a todas las tablas de una base de datos que tu le indiques, lo he visto en Linux, pero ahorita estoy usando el WAMP en Linux para encontrar homogeneidad con mis alumnos de Bases de Datos Distribuidas ahi en el TEC, y ahi en WAMP ya vi donde esta ese archivo (script), no lo he intentando usar, pero me gustaría pasarte el dato y que me ayudaras a escribir un post acerca de eso para mysql en windows, linux y max, como ves?

      1. como cree que no agradezca, si en verdad se lo merece, la ayuda es muy buena, y pues en verdad se agradecen este tipo de aportes a la comunidad. en verdad que si…

        Como le comentaba, pues esperemos que esto tenga un mejor nivel (visitas y comentarios).

        Y pues eso del scrip suena interesante, eso ahorraria mucho tiempo, como le mencione en un comentarios pasado, apenas ando viendo esto del MySQL, y pues por eso mi poca escases de informacion. pero aun asi no está demas saber un poco mas del tema. pues es cosa de checar que hondas con lo del script y pues desarrollar el tema. En el otro comentario dejé mi opinion en cuestion de participar en este blog. asi que me recervaré a escribirlo de nuevo. XD…

        En verdad lo que me propone suena interezante, pues ya sabe, si puedo lo ayudo prof.

        Gracias por la propuesta.

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: