搜尋
首頁運維Dockerdocker mysql 中文亂碼

在使用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。可以透過以下兩種方式實現:

  1. 修改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
  1. 連接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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何將應用程序部署到Docker群集群集?如何將應用程序部署到Docker群集群集?Mar 17, 2025 pm 04:20 PM

本文詳細介紹了將應用程序部署到Docker Swarm,涵蓋了過程中的準備,部署步驟和安全措施。

哪些Kubernetes Pod,部署和服務是什麼?哪些Kubernetes Pod,部署和服務是什麼?Mar 17, 2025 pm 04:25 PM

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

如何在Kubernetes中擴展應用程序?如何在Kubernetes中擴展應用程序?Mar 17, 2025 pm 04:28 PM

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

如何在Docker群中實現滾動更新?如何在Docker群中實現滾動更新?Mar 17, 2025 pm 04:23 PM

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

如何管理Docker群中的服務?如何管理Docker群中的服務?Mar 17, 2025 pm 04:22 PM

文章討論了Docker Swarm中的管理服務,專注於創建,擴展,監視和更新而無需停機。

如何管理Kubernetes的部署?如何管理Kubernetes的部署?Mar 17, 2025 pm 04:27 PM

本文討論了管理Kubernetes部署,專注於使用各種工具和最佳實踐的創建,更新,擴展,監視和自動化。

如何在Docker容器中實施限制費率和資源配額?如何在Docker容器中實施限制費率和資源配額?Mar 12, 2025 pm 06:07 PM

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

為低延遲應用優化Docker的最佳方法是什麼?為低延遲應用優化Docker的最佳方法是什麼?Mar 14, 2025 pm 02:00 PM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

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