首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MariaDB/MySQL my.cnf 配置文件中文註釋版(Huge 模板,適用 1-2G 內存專用庫)

     編輯:MySQL 綜合教學

文件說明

基於 MariaDB 官方 my-huge.cnf 模板,添加詳細中文註釋。適用於 **專用數據庫服務器,內存 1-2GB,主要運行 MariaDB/MySQL 的大型系統**。

配置文件結構

# MariaDB 會按順序讀取以下配置文件(後讀取的覆蓋先讀取的):
# 1. /etc/my.cnf          (全局)
# 2. /etc/mysql/my.cnf    (全局)
# 3. /usr/etc/my.cnf      (全局)
# 4. ~/.my.cnf            (用戶級)
# 查看具體加載順序: my_print_defaults --help

完整配置內容(關鍵參數已註釋)

[client]
# 客戶端默認連接參數
port        = 3306
socket      = /var/lib/mysql/mysql.sock
# password  = your_password  # 不建議明文寫密碼

[mysqld]
# ================= 基礎網絡 =================
port        = 3306
socket      = /var/lib/mysql/mysql.sock
skip-external-locking       # 避免外部鎖定,提升性能

# ================= 緩存與緩衝區 (1-2G 內存機型) =================
key_buffer_size         = 384M      # MyISAM 索引緩存,InnoDB 主用 buffer_pool
max_allowed_packet      = 1M        # 單次網絡包最大值,大字段需調大
table_open_cache        = 512       # 表緩存數量,配合 max_connections
sort_buffer_size        = 2M        # 排序緩存 (每線程)
read_buffer_size        = 2M        # 顺序讀緩存 (每線程)
read_rnd_buffer_size    = 8M        # 隨機讀緩存 (每線程)
myisam_sort_buffer_size = 64M       # MyISAM 建索引排序緩存
thread_cache_size       = 8         # 線程緩存,減少創建銷毀開銷
query_cache_size        = 32M       # 查詢緩存 (5.7+ 建議關閉,8.0 已移除)
thread_concurrency      = 8         # 建議 CPU核心數 * 2 (舊參數,新版忽略)

# ================= 臨時目錄 =================
# tmpdir = /tmp/          # 建議掛載到 SSD 或 tmpfs,提升臨時表性能

# ================= 安全:禁用 TCP/IP (可選) =================
# skip-networking         # 僅允許本地 Socket 連接,極大提升安全性
# 注意:Windows 需同時開啟 named-pipe 否則無法連接

# ================= 主從復制:主庫配置 =================
log-bin = mysql-bin         # 啟用二進制日志
server-id = 1               # 集群內唯一 ID (1 ~ 2^32-1)

# ================= 主從復制:從庫配置 (二選一) =================
# 方案 1: CHANGE MASTER TO (推薦,動態配置,不依賴 cnf)
# 方案 2: cnf 靜態配置 (首次啟動生成 master.info 後,cnf 修改無效)
# server-id = 2
# master-host = 
# master-user = 
# master-password = 
# master-port = 3306
# log-bin = mysql-bin       # 從庫也建議開啟 binlog (備份/級聯)
# binlog_format = mixed     # 推薦 mixed 或 ROW

# ================= InnoDB 專用配置 (取消註釋啟用) =================
# innodb_data_home_dir = /var/lib/mysql
# innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
# innodb_log_group_home_dir = /var/lib/mysql
# innodb_buffer_pool_size = 384M      # 純 InnoDB 實例設為物理內存 50-80%
# innodb_additional_mem_pool_size = 20M
# innodb_log_file_size = 100M         # 約 buffer_pool 25%
# innodb_log_buffer_size = 8M
# innodb_flush_log_at_trx_commit = 1  # 1=最安全, 2=高性能(刷OS Cache), 0=最高性能(風險丟數據)
# innodb_lock_wait_timeout = 50       # 死鎖等待超時(秒)

[mysqldump]
quick                       # 直接輸出流,不緩存內存
max_allowed_packet = 16M    # 導出大表需調大

[mysql]
no-auto-rehash              # 禁用 Tab 補全,加速啟動
# safe-updates              # 防止無 WHERE 的 UPDATE/DELETE (新手保護)

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

關鍵參數調優建議

參數調優方向監控指標
key_buffer_sizeMyISAM 表多則增大,純 InnoDB 可縮小至 32MKey_reads / Key_read_requests < 0.01
table_open_cache配合 open_tables 狀態變量調整Opened_tables 快速增長 → 增大
thread_cache_size高並發短連接場景增大 (如 50-100)Threads_created / Connections < 0.1
query_cache_size**讀多寫少** 且查詢重複率高時開啟;寫入頻繁**必須關閉** (設置 0)Qcache_hits / (Qcache_hits + Qcache_inserts) > 0.8
innodb_buffer_pool_size核心參數,專用機 50-80% 內存Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests < 0.01
innodb_log_file_size寫入壓力大時增大 (1G-4G),需重啟生效Innodb_log_waits > 0 → 增大
innodb_flush_log_at_trx_commit1=ACID 最嚴格;2=高性能(掉電丟 1 秒);0=極致性能(掉電丟數據)業務對數據安全容忍度決定

版本差異提示

  • MariaDB 10.2+ / MySQL 5.7+:查詢緩存 (query_cache_*) 已棄用/移除,配置無效。
  • MySQL 8.0:默認認證插件改為 caching_sha2_password,老客戶端需兼容處理。
  • InnoDB 專用參數:5.6+ 許多參數動態可調,無需重啟。

部署檢查清單

  1. 根據實際內存調整 innodb_buffer_pool_size、key_buffer_size。
  2. 確認 server-id 全局唯一。
  3. 設置 log-bin 並規劃 expire_logs_days。
  4. 生產環境**必須**設置 innodb_flush_log_at_trx_commit = 1、sync_binlog = 1。
  5. 使用 mysql_secure_installation 清理匿名用戶、測試庫、遠程 root 登錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved