Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-error-1118-42000-mysql-50-to.html
Así que recientemente he tenido una base de datos que TBs que tenía que actualizar de MySQL 5.0 a MySQL 5.5.
Este blog se referirá a lo siguiente:
Así que empecé tuve que comprobar algunas cosas primero.
Nueva DB era
Aceptar Prefiero tener algo para sql_mode en un valor vacío.
Así que dejé ir eso.
Usted puede leer más sobre esta opción aquí:
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-strict-mode.html
El comando anterior me permitió mejorar al menos el mysql una comprobación de las tablas.Para estar seguro que todavía se configura un script bash para volcar y cargar todas las tablas. (Sí toda la TBS de ellos)
No tome un atajo y asumir que todo está bien.
Si se producen errores mysqldump y volver a cargar los archivos. Es mejor prevenir que lamentar más tarde.
Una vez que los datos se cargan en 5.5 + que puedo revisar y ajustar las variables.
Así que huelga decir que va a tomar algún tiempo para volcar y cargar Terabytes de datos.Quiero dar a los esclavos a todos la oportunidad que pueda para ponerse al día lo más rápido posible. Mientras mis scripts de shell están deshaciendo y carga de los datos, no hay ninguna razón por la que la base de datos no se puede reunir la binlogs en el ínterin.
Así que ahora, mientras mi processlist mostrará:
el estado de esclavo muestra:
Slave_IO_Running: Sí
Slave_SQL_Running: No se
Así que estoy recogiendo troncos mientras limpio la base de datos.
Esto debería permitir que la base de datos para ponerse al día con rapidez una vez que estoy listo para ir.
Este blog se referirá a lo siguiente:
- sql_mode
- innodb_strict_mode
- ESCLAVO IO_THREAD
ERROR 1118 (42000) at line 23: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Así que empecé tuve que comprobar algunas cosas primero.
# The master DB was > select @@sql_mode;
+------------+
| @@sql_mode |
+------------+
| |
+------------+
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | +--------------------------------------------+
Así que dejé ir eso.
# MASTER SERVER
select @@innodb_strict_mode;
ERROR 1193 (HY000): Unknown system variable 'innodb_strict_mode'
# NEW SERVER mysql> select @@innodb_strict_mode;
+----------------------+
| @@innodb_strict_mode |
+----------------------+
| 1 |
+----------------------+
http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-other-changes-strict-mode.html
mysql> SET GLOBAL innodb_strict_mode=0;
El comando anterior me permitió mejorar al menos el mysql una comprobación de las tablas.Para estar seguro que todavía se configura un script bash para volcar y cargar todas las tablas. (Sí toda la TBS de ellos)
No tome un atajo y asumir que todo está bien.
Si se producen errores mysqldump y volver a cargar los archivos. Es mejor prevenir que lamentar más tarde.
Una vez que los datos se cargan en 5.5 + que puedo revisar y ajustar las variables.
Así que huelga decir que va a tomar algún tiempo para volcar y cargar Terabytes de datos.Quiero dar a los esclavos a todos la oportunidad que pueda para ponerse al día lo más rápido posible. Mientras mis scripts de shell están deshaciendo y carga de los datos, no hay ninguna razón por la que la base de datos no se puede reunir la binlogs en el ínterin.
mysql> START SLAVE IO_THREAD ;
SELECT /*!40001 SQL_NO_CACHE */ *
Slave_IO_Running: Sí
Slave_SQL_Running: No se
Así que estoy recogiendo troncos mientras limpio la base de datos.
Esto debería permitir que la base de datos para ponerse al día con rapidez una vez que estoy listo para ir.