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.