Conflicto nombre de tabla "system" en Drupal con MySQL 8

MySQL 8 amplía la lista de términos reservados, son palabras que no se recomienda utilizar, por ejemplo, en los nombres de tablas, y si se utilizan, deben ser correctamente escapadas para evitar la restricción.

Si usas una instalación de Drupal sin prefijo de tabla, te podrás encontrar con errores tipo:

Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds

Estos se deben a la tabla system de Drupal, término que coincide con una de las palabras reservadas.

La solución es sencilla, como primer paso debemos renombrar la tabla de system de nuestra base de datos, por ejemplo a tb_system, esto se puede hacer de forma sencilla desde phpMyAdmin disponible en cPanel, accediendo a la tabla en cuestión y renombrándola desde la pestaña Operaciones.

Una vez renombrada, debemos editar el fichero sites/default/settings.php, dentro de este fichero localizamos la línea:

$db_prefix = '';

Esta línea se utiliza para definir un prefijo para todas las tablas, pero tiene un pequeño truco, permite también un array donde indicamos solo las tablas específicas a las que queremos añadir el prefijo:

$db_prefix = array(
    'system' => 'tb_'
);

Con esta adición le decimos a Drupal que la tabla system tiene un prefijo tb_.

Con esto se solucionaría el conflicto y todo volvería a ser funcionar con MySQL 8.