Error en la Actualización de MariaDB: adminbin Cpanel/cpmysql/DBCACHE: exit 11

Error en la Actualización de MariaDB: adminbin Cpanel/cpmysql/DBCACHE: exit 11

Error: adminbin Cpanel / cpmysql / UPDATEPRIVS: exit 11

La actualización de MariaDB a v10.2.35 o v10.3.26, hace que la interfaz de Bases de datos MySQL muestre MySQL como sin conexión. Así lo anunció de manera oficial el equipo de cPanel en su portal, aunque es importante aclarar que la novedad se viene presentando desde el día de ayer cuando se inicio la actualización y a venido generado afectación a todos los servidores que usan cPanel de manera paulatina.

Síntomas

La actualización de MariaDB a v10.2.35 o v10.3.26 puede dificultar que determinados sitios sean inaccesibles y la interfaz de base de datos MySQL dentro de cPanel puede rellenar «El servidor MySQL está actualmente sin conexión.»

Descripción

La actualización de MariaDB a v10.2.35 o v10.3.26 hace que la interfaz de usuario de cPanel no lea correctamente las concesiones. Esto parece hacer que los sitios seleccionados sean inaccesibles y la página Base de datos MySQL dentro de la interfaz cPanel devuelve el siguiente error.

Es importante tener en cuenta que MariaDB todavía debe estar en ejecución, el registro de errores cPanel debe rellenar la cadena que la interfaz de usuario tiene problemas para leer:

<code>

[2020-11-04 07:37:27 +0000] warn [cpmysql] Error (Invalid grant string: SET DEFAULT ROLE 0 FOR '$user'@'$host'
) while parsing grant: SET DEFAULT ROLE 0 FOR '$user'@'$host' at /usr/local/cpanel/Cpanel/Mysql.pm line 956, <STDIN> line 1.
        Cpanel::Mysql::__ANON__(__CPANEL_HIDDEN__...) called at /usr/local/cpanel/3rdparty/perl/530/lib/perl5/cpanel_lib/Try/Tiny.pm line 118

</code>

El equipo de cPanel tambien informo que: «Hemos abierto un caso interno para que nuestro equipo de desarrollo investigue esto más a fondo. Como referencia, el número de caso es CPANEL-34745. Siga este artículo para recibir una notificación por correo electrónico cuando se publique una solución en el producto.»

Solución

La resolución que tenemos actualmente implica alterar el orden de las columnas a las posiciones esperadas para MariaDB.

Antes de continuar con estos cambios, le recomendamos que realice una copia de seguridad de la base de datos en caso de que se requiera una restauración. Para realizar una copia de seguridad del directorio de base de datos MySQL, el siguiente comando se puede ejecutar como root:

mysqldump mysql > /backup/mysql.sql

Una vez que se haya completado, podemos continuar con la modificación de ese orden de columnas de base de datos. El siguiente comando preforma las alteraciones adecuadas para la base de datos:

mysql -e "ALTER TABLE mysql.user MODIFY IF EXISTS password_last_changed timestamp DEFAULT CURRENT_TIMESTAMP NULL AFTER max_statement_time, MODIFY IF EXISTS password_lifetime smallint unsigned DEFAULT NULL AFTER password_last_changed, MODIFY IF EXISTS account_locked enum('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL after password_lifetime;"

A continuación, aplique el cambio reiniciando el servicio MariaDB:

/scripts/restartsrv_mysql 

Estos cambios deben entrar en vigor inmediatamente.

Actualización (Nueva Solución: 06/11/2020)
A partir de 2020-11-06, el equipo de desarrollo de cPanel ha lanzado un autofijo para abordar este problema. Se ejecutará automáticamente la próxima vez que se ejecute el mantenimiento nocturno. Sin embargo, si está experimentando este problema ahora, puede ejecutar el siguiente script de autofijo como raíz:

/scripts/autorepair fix_mariadb_show_grants_roles

Para los usuarios que han aplicado la solución alternativa anterior que implica la degradación de MariaDB. Asegúrese de desbloquear MariaDB para asegurarse de que sigue recibiendo las actualizaciones adecuadas:

# yum versionlock clear

A continuación, ejecute upcp para actualizar los paquetes de MariaDB:

/scripts/upcp
Entrada anterior WooCommerce 4.4 actualiza los bloques y centraliza la gestión de cupones
Entrada siguiente Google Meet VS Microsoft Teams VS Zoom