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;