Soporte » Guías – Resolución de problemas » WordPress tumba MariaDb 10.4.14

  • Resuelto xaxuthekid

    (@xaxuthekid)


    Hola: No sé si es el sitio adecuado para exponer mi caso, pero voy a tratarlo de explicar.

    Tengo instalado xampp 7.4.11 (php 7.4.11, apache 2.4.46 y mariaDb 10.4.14 equivalente a mySql 5.7) en Windows 10 x64.

    Instalé WordPress 5.6 allá por abril del 2021. Fue mi primera toma de contacto con WP, la instalación me dio alguna complicación, pero todo iba bien hasta que MariaDb se tumbaba con un error fatal; volvía a reiniciar MariaDb y todo ok hasta que volvía a realizar otra operación con WP. Al pensar que pudiera ser una incompatibilidad, desinstalé WP 5.6.

    Más tarde, viendo que había una niueva versión, la 5.7, me decidí a instalarla, esta vez más fácil de hacerlo y configurarla. Pero el error grave con MariaDb volvía a aparecer; así que, desinstalar nuevamente.

    Mi último intento ha sido con WP 5.8. Y, como no, el error tgrave de MariaDb volvía a suceder: Se cerraba el servidor MySql cada vez que trataba de actualizar un comentario, o se trataba de acceder a la base de datos.

    Decidí ver que pasaba, así que active el modo de depuración en MariaDb mediante la edición del archivo «my.ini» y poniendo: «innodb_force_recovery = 4»
    Una vez repetido el error, se busca en los archivos que se crean, editándolos: «mysql.dmp» y «mysql_error.log» el posible error.
    En mi caso aperecía el siguiente texto clarificador:

    2021-09-03 21:54:53 0 [Note] InnoDB: Buffer pool(s) load completed at 210903 21:54:53
    2021-09-04 11:12:06 0x3474  InnoDB: Assertion failure in file D:\winx64-packages\build\src\storage\innobase\btr\btr0sea.cc line 1400
    InnoDB: Failing assertion: index->id == btr_page_get_index_id(page)
    InnoDB: We intentionally generate a memory trap.
    InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
    InnoDB: If you get repeated assertion failures or crashes, even
    InnoDB: immediately after the mysqld startup, there may be
    InnoDB: corruption in the InnoDB tablespace. Please refer to
    InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/
    InnoDB: about forcing recovery.
    210904 11:12:07 [ERROR] mysqld got exception 0x80000003 ;

    En el que se puede observar que una corrupción en las tablas InnoDb.

    Para solventarlo abrí una ventana de comandos en modo administrador y ejecuté lás siguientes órdenes:
    1º.- mysqlcheck.exe -uroot -p -A -r (mysqlcheck.exe: es el ejecutable en línea de comandos para testear las bases de datos y sus tablas; -uroot: para indicar que seremos el administrador; -p: para que nos solicite la password del administrador; -A: testea todas las bases de datos; -r: fuerza la reparación de las posibles tablas corruptas.
    2º.- En mi caso mysqlcheck reparó varias tablas InnoDb, pero no pudo reparar la tabla «innodb_index_stats», que era precisamente la que entraba en conflicto con WP.
    3º.- Encontré un artículo en internet (https://gokhan.ozar.net/blog/fix-mysql56-corrupt-innodb-tables/) en inglés, como reescribir las tablas InnoDb corruptas. Así que, primero hice una copia de seguridad de la tabla «innodb_index_stats», luego borré la original, y ,desde la consola de mysql en modo administrador, la reconstruí con los parámetros indicados en el artículo.

    Esa hizo que WP funcionara de manera correcta, pero aún quedaba un pequeño problema: Al desconfiar del correcto funcionamiento del sistema, seguí comprobando los archivos de errores, encontrando lo siguiente de forma reiterada:
    «2021-09-04 11:40:38 15 [Warning] InnoDB: Table mysql/innodb_index_stats has length mismatch in the column name table_name.»

    La solución es fácil: desde la consola en modo administrador ejecute: «mysql_upgrade.exe -uroot -p» Como he indicado arriba -u es para identificarme como administrador y -p para que solicite la contraseña.

    De momento, llevo ya 2 semanas, no se ha producido ningún error, ni en el servidor ni en WP.

    Espero que os sirva.
    Muchas gracias por vuestra atención.

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Loading

    (@loadinges)

    Buenas,

    No creo que sea un error de WordPress, parece que la base de datos está dañada o directamente el motor de bases de datos.

    ¿Has probado a crear una nueva base de datos con otro nombre distinto importando el contenido existente en la anterior?

    Iniciador del debate xaxuthekid

    (@xaxuthekid)

    Hola gracias por responder. La solución fue la que indico en el cometanrio: reconstruir la tabla innodb_index_stats y luego actualizarla, ya que estaba corrupta.
    Intenté lo que me indicas, pero al importar, me daba error otra vez.

    Muchas gracias y un saludo.

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.