Tablas innodb.¿Como activarlas?

cristina
20 de Mayo del 2008
Tengo instalado el paquete Appserv con la version de Mysql 4.1.12a y no puedo definir tablas del tipo innodb.Me he bajado la versión de mysql 5.0 y tengo el mismo problema.Al utilzar el comando SHOW VARIABLES LIKE \\'%innodb%\\' la variable have_innodb está desactivada.¿ como puedo activarla?


mariobj
20 de Mayo del 2008
CRISTINA, EN LA CARPETA DE INSTALACION DE MYSQL HAY UN ARCHIVO LLAMADO MY.CNF O MY.CONF, EN WINXP SUELE TENER UN ICONO DE CONEXION COMO UNA PC PERO NO TE PREOCUPES ABRELO DESDE UN BLOK DE NOTAS, AHI ESTA LA INFO DE ARRANQUE DEL MOTOR DE MYSQL, UNA VES AHI DEBES BUSCAR LA LINEA QUE DICE #SKIP INNODB Y DESCOMENTARLA ASI COMO LAS LINEAS QUE SIGUEN QUE TIENEN QUE VER CON LA CONFIGURACION INNODB (DESCOMENTARLAS QUITA EL SIGNO # PARA QUE EL ARRANQUE DE MYSQL LAS INTERPRETE) LUEGO GRABA EL ARCHIVO Y REINICIA EL SERVIDOR DE MYSQL........... ESA ES LA FORMA CORRECTA DE ACTIVAR TABLAS INNODB Y NO HAY OTRA PUEDO ASEGURARTELO........... SUERTE CON ESO

marta
20 de Mayo del 2008
Hola! Explico un poco más la respuesta anterior (muy buena, mariobj, gracias!)

En mi caso (instalación vía Xampp en windows XP) hay dos archivos de configuración:
c:Windowsmy.ini (he intentado añadir ahí las líneas referentes a innodb y no me ha hecho ni caso)

c:xamppmysqlbinmy (este archivo tiene, efectivamente un PC como icono, y es el que hay que editar)

Pues bien, para abrirlo es necesario arrastrar y soltar hasta una ventana de notepad. (No funciona ni doble clic, ni botón derecho-abrir, ni cambiar la extensión).

Las modificaciones que hay que hacer són: comentar la línea "skip-innodb", descomentar algunas de las líneas que siguen, y añadir "default-storage-engine=innodb" al final (para que innodb sea el sistema por defecto).

La parte del fichero relativa a innodb quedará así (en Xampp, claro):

#skip-innodb
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = C:/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/xampp/mysql/data/
innodb_log_arch_dir = C:/xampp/mysql/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50
default-storage-engine=innodb


Guardar y reiniciar el servicio mysql. Ahora, al hacer la consulta "show variables like "%innodb" desde mysql, debería mostrar:
have_innodb con el valor YES (antes aparecía como DISABLED)

Si ahora miramos en:
c:xamppmysqldata
veremos que hay tres archivos nuevos (si alguna vez tenemos problemas con el funcionamiento del motor innodb, sólo los tenemos que eliminar y reiniciar el servicio mysql). Son estos:
ib_logfile0
ib_logfile1
ibdata1

Eso es todo. Espero haber ayudado a alguien ;)