| 層級 | 配置方式 | 示例 |
| 編譯期預設 | --with-charset=utf8 --with-extra-charsets=gb2312,big5,utf8mb4 | 支援中文、表情符號 |
| Server 啟動 | --default-character-set=utf8mb4 | 運行時覆蓋 |
| Client 連線 | --default-character-set=utf8mb4 或 SET NAMES utf8mb4 | 應用層指定 |
| 資料庫/表/欄 | CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci | 細粒度控制 |
MySQL 4.1+ 採用欄級字符集,升級舊庫:mysqldump --all-databases --opt > dump.sql → 升級 → mysql < dump.sql 自動重建索引。
InnoDB 表空間配置範本
[mysqld]
innodb_data_home_dir = /data/innodb
innodb_data_file_path = ibdata1:10G:autoextend:max:100G
innodb_log_group_home_dir = /logs/innodb
innodb_log_file_size = 1G
innodb_log_files_in_group = 2
innodb_buffer_pool_size = 64G
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
autoextend 僅最後一個檔案生效,步長 8MB。
- 原始裝置繞過檔案系統大小限制:
innodb_data_file_path=/dev/sdb1:500Gnewraw 初始化後改 raw。
- 擴容流程:關機 → 修改最後檔案固定大小 → 新增檔案 → 啟動。
表空間重建替代方案
mysqldump 全備份。
- 停服務,刪除
ibdata*、ib_logfile*、*.frm。
- 新配置啟動初始化。
- 匯入備份重建。
- 上一篇文章: MySQL 主從鏡像(Replication)架構設計與版本相容性指南
- 下一篇文章: MySQL 日誌文件全生命週期管理:類型、輪轉、清理、鏡像協同
Copyright ©
程式碼之家 All Rights Reserved