全部產品
Search
文件中心

ApsaraDB RDS:RDS MySQL如何保證資料庫字元編碼正確

更新時間:Feb 27, 2025

本文將詳細介紹如何在RDS MySQL中正確設定用戶端字元集,以確保資料庫字元編碼的準確性。通過合理的配置,可以避免字元亂碼問題,確保資料在儲存和傳輸過程中保持一致性和完整性。

字元集是資料庫設計過程中需要重點考慮的因素之一。根據業務情境、使用者資料等方面的需求,選擇合適的字元集至關重要,以確保資料的一致性和正確性。

說明

阿里雲提醒您:

  • 如果您對執行個體或資料有修改、變更等風險操作,務必注意執行個體的容災和容錯能力,確保資料安全。

  • 如果您對執行個體(包括但不限於ECS、RDS)等進行配置與資料修改,建議提前建立快照或開啟RDS記錄備份等功能。

  • 如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改。

查看資料庫字元集

  1. 登入RDS執行個體,請參見串連MySQL執行個體

  2. 依次執行如下SQL語句,查看相應資料庫的字元集。

     USE <資料庫名>;
     SHOW VARIABLES LIKE '%character%';

    系統將顯示類似如下結果:

    Variable_name

    Value

    character_set_client

    utf8

    character_set_connection

    utf8

    character_set_database

    binary

    character_set_filesystem

    utf8

    character_set_results

    utf8

    character_set_server

    utf8

    character_set_system

    utf8

    說明
    • 以上除character_set_filesystem外,其他參數應保持一致,以避免亂碼問題。

    • 用戶端設定包括character_set_clientcharacter_set_connectioncharacter_set_results

    • 伺服器端設定包括character_set_systemcharacter_set_servercharacter_set_database

    • 伺服器端參數的優先順序順序為:character_set_database > character_set_server > character_set_system

修改資料庫字元編碼

  1. 執行如下SQL語句,修改用戶端字元集。

    SET NAMES '<Character_Set>';
    說明

    <Character_Set>為所需的字元集(例如utf8mb4)。

  2. 執行如下SQL語句,修改資料庫字元集。

    ALTER DATABASE <資料庫名> CHARACTER SET = <Character_Set> COLLATE = <Rules>;
    說明

    <Rules>為字元集規則(例如utf8mb4_unicode_ci)。

  3. 修改character_set_server參數。

    1. 登入RDS管理主控台,在上方選擇地區。單擊目標執行個體ID。

    2. 在左側導覽列中單擊參數設定

    3. 可修改參數頁簽下尋找到character_set_server進行修改,然後單擊確定

      重要

      修改character_set_server參數需要重啟執行個體,建議在業務低峰期進行操作。

    4. 在頁面右上方單擊提交參數,在彈出的對話方塊中單擊確定,等待執行個體重啟即可。

      說明
      • 修改character_set_server參數後,僅對開啟高許可權帳號的執行個體新建立的資料庫有效,對當前資料庫無效。

      • character_set_system參數暫時不提供更改,但因其優先順序最低,影響較小。