my.cnf(Windows 為 my.ini)是 MySQL 統一配置入口,可調整伺服器、客戶端、各工具啟動參數,避免命令列冗長參數。
| 路徑 | 作用域 | 備註 |
|---|---|---|
/etc/my.cnf (Win: C:\my.ini) | 全域(所有實例) | Windows 僅支援此層級 |
DATADIR/my.cnf | 實例級(特定資料目錄) | Windows 不支援 |
--defaults-extra-file=檔案 | 指定檔案 | Windows 不支援 |
~/.my.cnf | 使用者級 | Windows 不支援 |
support-files/)| 檔案名 | 適用場景 |
|---|---|
my-huge.cnf | 高階伺服器,1-2GB RAM,專跑 MySQL |
my-innodb-heavy-4G.cnf | 純 InnoDB,4GB RAM,大查詢低流量 |
my-large.cnf | 中型伺服器,512MB RAM,專跑 MySQL |
my-medium.cnf | 低階伺服器,<128MB RAM |
my-small.cnf | 最小配置,<64MB RAM |
建議複製最接近硬體的範本為 /etc/my.cnf 再微調。
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
skip-locking
key_buffer_size=256M
max_allowed_packet=1M
table_open_cache=256
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=4M
myisam_sort_buffer_size=64M
thread_cache_size=8
query_cache_size=16M
thread_concurrency=8
# 複寫設定
log-bin=mysql-bin
server-id=1
# InnoDB 專屬(預設註解)
# innodb_buffer_pool_size=256M
# innodb_log_file_size=64M
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
# 互動式客戶端設定
# 開頭。--key_buffer_size → key_buffer_size)。[section] 定義生效範圍,直到下一個區段為止。set-variable=key_buffer_size=256M 寫法已不建議使用。修改 my.cnf 後需 **重啟 MySQL 服務** 才能生效(部分參數可 SET GLOBAL 動態調整,但重啟後會還原)。