溫馨提示×

Ubuntu MariaDB字符集設置指南

小樊
38
2025-10-18 17:35:45
欄目: 云計算

Ubuntu MariaDB 字符集設置指南(推薦使用 utf8mb4)

一、字符集選擇說明

MariaDB 10.x 默認字符集為 latin1,無法滿足多語言(如中文、emoji)及現代應用需求。強烈推薦使用 utf8mb4,它是 MySQL/MariaDB 對“真正 UTF-8”的實現,支持 4 字節字符(如表情符號、部分生僻漢字),是當前行業標準字符集。

二、配置前準備

  1. 更新系統包:確保系統軟件包為最新版本
    sudo apt update && sudo apt upgrade -y
    
  2. 安裝 MariaDB(若未安裝):
    sudo apt install -y mariadb-server mariadb-client
    
  3. 運行安全腳本:初始化 root 密碼、移除匿名用戶、禁止 root 遠程登錄等
    sudo mysql_secure_installation
    

三、修改配置文件(全局生效)

MariaDB 的主配置文件路徑為 /etc/mysql/mariadb.conf.d/50-server.cnf(Ubuntu 默認路徑),需修改 [mysqld] 部分的字符集參數:

sudo sed -i "s/^ *\(character-set-server\s*=\s*\).*/\1utf8mb4/" /etc/mysql/mariadb.conf.d/50-server.cnf
sudo sed -i "s/^ *\(collation-server\s*=\s*\).*/\1utf8mb4_unicode_ci/" /etc/mysql/mariadb.conf.d/50-server.cnf

參數說明

  • character-set-server=utf8mb4:設置服務器默認字符集為 utf8mb4;
  • collation-server=utf8mb4_unicode_ci:設置服務器默認排序規則(支持大小寫不敏感、多語言排序)。

四、重啟 MariaDB 服務

修改配置后需重啟服務使更改生效:

sudo systemctl restart mariadb

五、驗證全局字符集配置

登錄 MariaDB 命令行,執行以下命令查看全局字符集變量:

mysql -u root -p

輸入密碼后,運行:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

預期輸出(關鍵變量需為 utf8mb4):

Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_server utf8mb4
collation_connection utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci

六、設置數據庫/表字符集(可選)

若已有數據庫或表需修改字符集,可使用以下命令:

  1. 修改數據庫字符集
    ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    
  2. 修改表字符集
    ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

your_database_nameyour_table_name 替換為實際名稱。

七、確??蛻舳诉B接使用 utf8mb4(可選)

為避免客戶端與服務器字符集不一致導致亂碼,可在配置文件中添加 init_connect 參數(在 [mysqld] 部分末尾添加):

init_connect='SET NAMES utf8mb4'

重啟服務后,所有新連接都會自動執行 SET NAMES utf8mb4,確??蛻舳耸褂?utf8mb4 字符集。

注意事項

  • 備份數據:修改字符集前務必備份重要數據庫,防止數據丟失;
  • 兼容性utf8mb4 占用更多存儲空間(如 emoji 占用 4 字節),需確保服務器資源充足;
  • 遠程訪問:若需遠程訪問,需修改 bind-address0.0.0.0 并配置防火墻放行 3306 端口(參考 Ubuntu MariaDB 配置要點中的遠程訪問配置)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女