在使用Docker容器部署MySQL資料庫時,有時會出現中文亂碼的情況。這是因為MySQL預設字元集為Latin1,而中文字元需要使用UTF-8編碼。本文將介紹如何解決docker mysql中文亂碼問題。
一、檢視目前MySQL字元集
首先,我們要先查看目前MySQL的字元集。可以透過登入MySQL後使用以下指令:
mysql> show variables like '%char%';
其中,字元集相關的變數有:
- character_set_client:客戶端字元集,也就是連接MySQL的客戶端所使用的字元集;
- character_set_connection:連接字元集,也就是伺服器與客戶端之間的字元集;
- character_set_database:資料庫字元集,新建立的資料庫會按此字元集建立;
- character_set_results:結果字元集,SELECT查詢傳回的結果所使用的字元集;
- character_set_server:伺服器字元集,MySQL伺服器本身所使用的字元集。
二、修改MySQL字元集為UTF-8
查看到目前MySQL字元集為Latin1後,我們需要修改為UTF-8。可以透過以下兩種方式實現:
- 修改MySQL設定檔
#在MySQL設定檔中(通常是/etc/my.cnf或/etc/mysql/ my.cnf),新增以下兩行內容:
[client] default-character-set=utf8 [mysqld] character-set-server=utf8
其中,[client]用於設定客戶端字元集為UTF-8,[mysqld]用於設定伺服器字元集為UTF-8。修改完成後重新啟動MySQL服務:
sudo service mysql restart
- 連接MySQL後修改字元集
如果無法修改MySQL設定文件,可以在連接MySQL後手動修改字元集。可以透過以下命令連接到MySQL:
mysql --default-character-set=utf8 -u用户名 -p密码 数据库名
連接成功後,依序執行以下命令修改字元集:
SET character_set_client = utf8; SET character_set_connection = utf8; SET character_set_database = utf8; SET character_set_results = utf8; SET character_set_server = utf8;
修改完成後,登出MySQL,再次登入即可生效。
三、在Docker容器中使用UTF-8字元集
由於Docker容器中的MySQL是基於映像運行的,因此我們需要在映像中設定UTF-8字元集。可以透過以下Dockerfile來建構MySQL映像:
FROM mysql:latest ENV MYSQL_ROOT_PASSWORD=root ENV MYSQL_DATABASE=test ENV MYSQL_CHARSET=utf8 ENV MYSQL_COLLATION=utf8_general_ci COPY ./init.sql /docker-entrypoint-initdb.d/
其中,ENV指令用於設定環境變量,MYSQL_CHARSET用於設定MySQL字元集為UTF-8,MYSQL_COLLATION用於設定排序規則為utf8_general_ci。這裡也透過COPY指令將初始化腳本init.sql複製到鏡像中,用於在啟動容器時自動執行。
四、總結
透過以上三個步驟,我們可以在Docker容器中使用MySQL,並且設定字元集為UTF-8,避免中文亂碼的問題。當然,如果需要處理多語言字元集,還需根據具體情況進行調整。希望該文章能對大家有幫助。
以上是docker mysql 中文亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文解釋了Kubernetes的吊艙,部署和服務,詳細說明了它們在管理容器化應用程序中的作用。它討論了這些組件如何增強應用程序內的可擴展性,穩定性和通信。(159個字符)

本文使用手動縮放,HPA,VPA和集群Autoscaler討論了Kubernetes中的擴展應用程序,並提供了監視和自動化縮放的最佳實踐和工具。

本文討論了Docker Swarm中實施滾動更新以更新服務而無需停機。它涵蓋更新服務,設置更新參數,監視進度並確保更新。

本文詳細介紹了Docker中實現速率限制和資源配額的。 它涵蓋了使用CGroups的CPU,內存和I/O限制,強調了防止資源耗盡的最佳實踐。 網絡速率限制,需要外部工具

本文討論了針對低延遲應用程序優化Docker的策略,重點是最小化圖像大小,使用輕量級基礎圖像以及調整資源分配和網絡設置。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),