MariaDB para almacenar texto con emojis

MariaDB

Cómo usar MariaDB para almacenar texto que contiene emojis en un entorno Node.js

Recientemente cambié de PSQL a MariaDB para hacer uso de la prueba gratuita de 12 meses de Amazon, pero me encontré con un problema relacionado con los emojis. Al instalar MariaDB a través de Homebrew, el juego de caracteres inicial para el sistema será utf8mb3. Este formato no es compatible con emojis, y tratar de usar emojis en cualquier declaración devolverá un error. ¡Pero la esperanza no está perdida!

Hay 3 cosas que debes hacer:

  1. Actualice los conjuntos de caracteres de su sistema MariaDB
  2. Formatee correctamente su base de datos/tablas
  3. Agregue el parámetro charset a su grupo/conexión de MariaDB

Actualice los conjuntos de caracteres de su sistema MariaDB

Para verificar qué conjunto de caracteres está usando su MariaDB, conéctese a su servidor MariaDB como de costumbre…

mysql 

Luego ingrese la siguiente declaración…

SHOW VARIABLES LIKE 'char%'; SHOW VARIABLES LIKE 'collation%';

Deberías ver la siguiente tabla:

MariaDB

Ahora, si sus valores son todos utf8mb4 y utf6mb4_unicode_ci (excepto character_sets_dir), la configuración de su sistema está lista. De lo contrario, busque el archivo my.cnf que para mí se encuentra en usr/local/etc/. Luego, actualízalo con el siguiente código:

#

# This group is read both by the client and the server

# use it for options that affect everything

#

[client-server]

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

collation-server = utf8mb4_unicode_ci

init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'

character-set-server = utf8mb4

#

# include *.cnf from the config directory

#

!includedir /usr/local/etc/my.cnf.d

Después de guardar este archivo, la configuración de su sistema MariaDB debe estar configurada correctamente.

Formatee correctamente su base de datos/tablas

Al crear su base de datos en la consola de MariaDB, agregue detalles del juego de caracteres…

CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

Y al hacer sus tablas, agregue detalles del conjunto de caracteres al final de la declaración:

CREATE TABLE things (
   internal_thing_id SERIAL PRIMARY KEY,
   text_with_emojis TEXT
) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

Agregue el parámetro charset a su grupo/conexión de MariaDB

El último paso requiere una pequeña adición en nuestro proyecto Node. Dondequiera que establezca su grupo/conexión de base de datos, agregue charset: “utf8mb4” a la lista de parámetros.

const mariadb = require('mariadb');var pool = mariadb.createPool({  host: "your url",  user: "your username",  password: "your password",  database: "your db",  charset: "utf8mb4",});module.exports = pool;

¡Y YA ESTÁ LISTO! 🎉

Por favor comente si tiene algún inconveniente con esto…

Recent Post