2016-07-01 17 views
16

Mi piacerebbe che ogni tabella e database (da creare) fossero utf-8 che funziona con gli emoji. Capisco che ci sono alcune variabili che ho bisogno di definire all'interno my.cnf:In MySQL, cosa inserisco in my.cnf in modo che tutte le tabelle UTF-8 funzionino con le emoji per impostazione predefinita?

init_connect='SET collation_connection = ??? ' 
init_connect='SET NAMES ???' 
character-set-server = ??? 
collation-server = ??? 

Tuttavia, non sono sicuro di cosa mettere nel ???. Cosa inserisco all'interno di my.cnf?

+0

Does questo post rispondi alla tua domanda? http://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf –

+0

Possibile duplicato di [Come supportare UTF-8 completamente in un'applicazione web] (http://stackoverflow.com/questions/279170/how-to-support-utf-8-completely-in-a-web-application) ... Ancora molte domande a riguardo ... – Carpetsmoker

risposta

11

Questo articolo può aiutare: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4

Esso spiega in dettaglio come passare utf8mb4 a pieno supporto Unicode, permettendo così emojis utilizzando la seguente configurazione:

[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 
3

Oltre a modificare a utf8mb4 come @ eol suggerisce, potrebbe esserci altro da fare.

Se si dispone già di tabelle con colonne utf8; fare ALTER TABLE .. CONVERT TO CHARACTER SET utf8mb4.

Quando ci si connette, assicurarsi di stabilire UTF-8 se il client ha un modo non MySQL di farlo o utilizzare SET NAMES utf8mb4.

Ricordare che root ignora init-connect. L'utente dovrebbe avere un "utente" non root per l'applicazione.

2

Per pieno supporto Unicode in database MySQL

  1. Per database: ALTER DATABASE DATABASE_NAME CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  2. Per tabella: ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  3. Per colonna: ALTER TABLE TABLE_NAME CHANGE COLUMN_NAME COLUMN_NAME VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Problemi correlati