天天看點

MySql如何支援emoji表情前言正文總結

前言

編碼過程中,可能都會遇到這個問題,MySql或MariaDB需要支援emoji表情。下面就把步驟分享一下,順便也記錄一下!

正文

修改.cnf檔案

由于我們使用的是MariaDB的Docker鏡像,是以需要在原有鏡像的基礎上進行再加工,即替換原有的/etc/mysql/conf.d目錄下的mariadb.cnf檔案。如果你不知道修改的檔案具體的目錄,你可以使用原始的方法,即啟動一個MariaDB的Docker鏡像,然後進入到該容器中,嘗試查找即可。

查找步驟

1.下載下傳鏡像

2.啟動

docker run -it -e MYSQL_ROOT_PASSWORD= mariadb:latest
           

此處必須設定MYSQL_ROOT_PASSWORD。

3.進入容器

docker ps
docker exec -it ba593028e3a7 bash
           

根據docker ps查找到容器的ID,然後直接通過ID進入到指定容器。

修改檔案

查找到mariadb.cnf檔案後,将如下内容替換到指定位置:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
character-set-client-handshake = FALSE
           

建構鏡像

1.建構Dockerfile

FROM mariadb:latest
ADD mariadb.cnf /etc/mysql/conf.d/
           

2.将Dockerfile與mariadb.cnf放到同一個目錄

3.打鏡像

4.啟動新鏡像,驗證修改結果

通過如下指令檢視修改變量的結果:

修改資料庫、表、列的編碼

正常情況下如果資料庫設定成utf8mb4,就無需再單獨修改表的編碼了,是以第二步不是必須!

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY column_name VARCHAR() CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
           

總結

資料庫、表、列的編碼修改一次之後,可以通過導出結構的方式導入到新的資料庫中。

繼續閱讀