Solución a Database 4 Byte UTF-8 Support

00:00
 

Vamos a ver como solucionar la advertencia de Drupal "Database 4 Byte UTF-8 Support" la cual añade mejor soporte para Emojis, símbolos matemáticos y asiáticos.

Este vídeo está basado en la documentación oficial de Drupal la cual puedes ver en este enlace.

Para poder convertir el cotejamiento de las tablas de tu base de datos necesitas tener Drush instalado.

Si bien en Windows puedes instalar Drush, al día de hoy no me ha funcionado.

Instalar uft8mb4 convert

La conversión la vamos a lograr por medio de una herramienta de Drush la cual se llama utf8mb4_convert.

Recuerda que es muy importante hacer primero una copia de seguridad sobre todo de la base de datos.

Así que para instalarla en nuestra consola hacemos:

drush @none dl utf8mb4_convert-7.x

Una vez que finalice la descarga tenemos que vaciar la cache de Drush con:

drush cc drush

Modificar el archivo de configuración de MySQL

Ahora procedemos a modificar nuestro archivo de configuración de MySQL, en el caso de Debian, Ubuntu, Mint el mismo se llama my.cnf.

sudo nano /etc/mysql/my.cnf

Añadimos las siguientes líneas:

innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true

Recuerda que con Nano puedes pegar con Shift + Insert, luego F2 para guardar y enter para salir.

Tenemos que reiniciar el servidor para que los cambios surjan efecto:

En Ubuntu y derivados versión 16.04

sudo systemctl restart mysql.service

En Ubuntu y derivados versión 14.04

sudo /etc/init.d/mysql restart

Convertir las tablas de la base a UTF8MB4

De regreso en la terminal hacemos:

drush utf8mb4-convert-databases

Este proceso es el encargado de realizar la conversión.

El mismo suele demorar, siendo mayor el tiempo cuanto más módulos tengas activos, ya que mayor es el número de tablas creadas.

Modificar el archivo settings.php

El último paso es modificar el archivo de configuración de Drupal, para ello editamos el archivo settings.php.

Buscamos el siguiente apartado:

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'sitio1',
      'username' => 'root',
      'password' => 'root',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
      ),
  ),
);

Y antes del último paréntesis añadimos las siguientes líneas:

      'charset' => 'utf8mb4',
      'collation' => 'utf8mb4_general_ci',

Quedando de la siguiente manera:

$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'sitio1',
      'username' => 'root',
      'password' => 'root',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
      'charset' => 'utf8mb4',
      'collation' => 'utf8mb4_general_ci',
    ),
  ),
);

Ahora ya puedes comprobar el informe del sitio para ver si tiene activo el cotejamiento UTF8MB4.



Tópico
 
Sistema Operativo
 
Plataforma
 

Premium

Landing Page con Bootstrap

Landing Page con Bootstrap y Gulp

En Youtube

Suscríbete a mi canal

Suscríbete a las noticias

* requerido

Inicio de sesión

Recursos