2009-08-13 19 views
7

No he hecho demasiados ajustes en el pasado, así que esto podría ser relativamente fácil, sin embargo, estoy teniendo problemas. Esto es lo que hago:Problema que cambia innodb_log_file_size

  1. parada MySQL
  2. Editar my.cnf (cambiando innodb_log_file_size)
  3. Retire ib_logfile0/1
  4. inicio de MySQL

Inicia bien sin embargo todas las tablas InnoDB tienen el archivo .frm es un error no válido, el estado muestra que el motor InnoDB está desactivado, así que, obviamente, retrocedo, elimino el cambio y todo vuelve a funcionar.

Pude cambiar cualquier otra variable que he intentado, pero parece que no puedo averiguar por qué InnoDB no puede iniciarse incluso después de eliminar los archivos de registro. ¿Me estoy perdiendo de algo?

Gracias.

Editar: pegado del registro a continuación - parece que todavía parece encontrar el archivo de registro a pesar de que no están allí?

apagado:

090813 10:00:14 InnoDB: Starting shutdown... 
090813 10:00:17 InnoDB: Shutdown completed; log sequence number 0 739268981 
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete 

de inicio después de hacer los cambios:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 
InnoDB: than specified in the .cnf file 0 268435456 bytes! 
090813 11:00:18 [Warning] 'user' entry '[email protected]' ignored in --skip-name-resolve mode. 
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections. 
Version: '5.0.81-community-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition (GPL) 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 

sencillamente es un correo no deseado del mismo error hasta que lo corrijo

Cuando se inició después de que recreó la archivos de registro por lo que debe estar buscando en el mismo lugar que yo.

Respuesta

15

En primer lugar, debo señalar que antes de cualquier chage en los archivos de datos InnoDB, uno debe leer 13.2.5. Adding, Removing, or Resizing InnoDB Data and Log Files.

Los pasos que indicó son casi correctos. Se recomienda realizar una copia de seguridad antes de este tipo de cambios. Vamos a ver lo que le pasó:

Los mensajes de error

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 
InnoDB: than specified in the .cnf file 0 268435456 bytes! 

son causadas por el cambio del tamaño de innodb_log_file_size y no te eliminar los archivos antiguos. Probablemente olvidó borrar de ib_logfile0/1 la primera vez que ejecutó mysqld después del cambio.El mensaje

090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections. 

muestra que haya resuelto este problema (mediante la eliminación de ib_logfile s). Pero, al eliminarlos, creas el otro problema. Datos corruptos para XXXX \ User.frm o algún problema con InnoDB Engine.

Para estar seguros de que InnoDB está habilitado, ejecute este comando en el símbolo del mysql:

show variables like "%inno%"; 

En la lista de resultados debe tener "have_innodb = YES". A veces, cuando InnoDB puede no iniciarse (el valor es NO o DISABLED) aparece el mensaje Incorrect information in file.
- Si este es el problema, ha cambiado algo más que impide que InnoDB Engine se inicie correctamente (permisos de datadir o permisos de tmpdir, otras variables innodb (no mostró el registro completo), etc.) . Revise los cambios o ponga los archivos .cnf (antes y después).
- Si el motor InnoDB es YES, entonces debe reparar la tabla. (Si Está este caso, añadir un comentario y voy agregar la información aquí. Im demasiado perezoso para hacerlo ahora.)

+0

¿por qué el donwvote? ¿cómo podría mejorarlo? –

+0

Recomiendo el apagado completo, así que primero 'SET GLOBAL innodb_fast_shutdown = 0; ' – KCD

1

La primera línea del error sugiere que no ha eliminado el ib_logfile0. ¿Puedes confirmar que estás renombrando/eliminando el correcto?

0

Lo que debe verificar:

  • ¿Hay suficiente espacio en el dispositivo para crear el archivo de registro de ese tamaño? Este comportamiento puede provenir de un dispositivo completo.
  • ¿Se están creando los archivos de registro con la configuración incorrecta?
  • Su ruta de acceso al archivo de registro no se muestra como absoluta. Solo por sonrisas, vea si hay otras ubicaciones en su disco que contengan un ib_logfile0. Podría ser un error tonto.
+0

Hay suficiente espacio. (alrededor de 250 g gratis) Los archivos de registro no se crean en absoluto, después de ejecutar el inicio no existen en ningún lado. Hice un hallazgo para ib_logfile * en la raíz y regresó con la única ubicación desde la que los quité. – savageguy

0

¿Ha intentado utilizar un cliente de SQL para modificar el campo innodb_log_file_size?

Personalmente me gusta SQuirreL

+3

Los campos relacionados con innodb no se pueden editar desde el cliente. deben editarse en my.cnf y se toman como los nuevos valores al reiniciar el servicio. –

0

Sospecho que ha extraído los archivos de registro incorrectas. busca otros archivos ib_logfile *. tal vez estás usando innodb_log_group_home_dir?

si es así, asegúrese de haber eliminado los ib_logfiles de allí y no el datadir.

Cuestiones relacionadas