簡體   English   中英

在MySQL中,我在my.cnf中放置了什么,以便所有表格都是UTF-8默認情況下與emojis一起使用?

[英]In MySQL, what do I put inside my.cnf so that all tables are UTF-8 that works with emojis by default?

我希望每個表和數據庫(要創建)都是與emojis一起使用的utf-8。 我知道我需要在my.cnf定義一些變量:

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

但是,我不知道該放什么??? 我在my.cnf里面放了什么?

本文可能會有所幫助: https//mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4

它詳細解釋了如何切換到utf8mb4以支持完整的unicode,從而允許emojis使用以下配置:

[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

除了像@eol建議更改為utf8mb4之外,還有更多工作要做。

如果您已經擁有包含utf8列的表; 執行ALTER TABLE .. CONVERT TO CHARACTER SET utf8mb4

連接時,如果客戶端采用非mysql方式,請務必建立UTF-8 ,或使用SET NAMES utf8mb4

請記住, root忽略了init-connect 應該為應用程序提供非root用戶。

支持MySQL數據庫中的完整Unicode

  1. 對於數據庫: ALTER DATABASE DATABASE_NAME CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  2. 對於表格: ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  3. 對於列: ALTER TABLE TABLE_NAME CHANGE COLUMN_NAME COLUMN_NAME VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM