usando - utf8mb4 mysql
En MySQL, ¿qué coloco en my.cnf para que todas las tablas sean UTF-8 que funcionen con emojis de forma predeterminada? (3)
Me gustaría que cada tabla y base de datos (para ser creada) sea utf-8 que funcione con emojis. Entiendo que hay algunas variables que debo definir dentro de my.cnf
:
init_connect=''SET collation_connection = ??? ''
init_connect=''SET NAMES ???''
character-set-server = ???
collation-server = ???
Sin embargo, no estoy seguro de qué poner en el ???
. ¿Qué pongo dentro de my.cnf
?
Además de cambiar a utf8mb4
como sugiere @eol, puede que haya más por hacer.
Si ya tiene tablas que tienen columnas utf8
; hacer ALTER TABLE .. CONVERT TO CHARACTER SET utf8mb4
.
Cuando se conecte, asegúrese de establecer UTF-8
si el cliente tiene una forma de hacerlo que no sea mysql, o use SET NAMES utf8mb4
.
Tenga en cuenta que la root
ignora init-connect
. Debería tener un ''usuario'' no root para la aplicación.
Este artículo puede ayudar: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4
Explica en detalle cómo cambiar a utf8mb4
para que sea compatible con unicode completo, permitiendo así que emojis utilicen la siguiente configuración:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Para soportar Unicode completo en bases de datos MySQL
Para la base de datos:
ALTER DATABASE DATABASE_NAME CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Para la tabla:
ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Para la columna:
ALTER TABLE TABLE_NAME CHANGE COLUMN_NAME COLUMN_NAME VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;