./configure --prefix=/usr/local/mysql-5.7
./configure --prefix=/usr/local/mysql-8.0
各版本獨立目錄,互不干擾。
--datadir=/data/mysql_3306, /data/mysql_3307--port=3306, --port=3307--socket=/tmp/mysql_3306.sock, /tmp/mysql_3307.sock--pid-file=/var/run/mysqld_3306.pid--log-error=/var/log/mysql_3306.err僅放置所有實例通用的設定 (如 [client] 區塊)。
# /data/mysql_3306/my.cnf
[mysqld]
datadir=/data/mysql_3306
port=3306
socket=/tmp/mysql_3306.sock
pid-file=/var/run/mysqld_3306.pid
log-error=/var/log/mysql_3306.err
innodb_buffer_pool_size=512M
mysqld --defaults-file=/data/mysql_3306/my.cnf &
--defaults-file 必須是命令列第一個參數,會忽略其他標準配置檔。
mysqld_safe 為基礎撰寫各實例專屬啟動腳本 (如 mysql_3306_start),內含 --defaults-file 參數。/etc/rc.local 或 systemd service unit。| 資源 | 建議 |
|---|---|
| 記憶體 | 所有實例 innodb_buffer_pool_size 總和 ≤ 物理記憶體 70% |
| CPU | 關聯實例到不同 CPU 核心 (taskset/cgroups) |
| 磁碟 I/O | 資料目錄置於不同實體磁碟/分區 |
| 檔案描述符 | 各實例 open_files_limit 總和 < 系統上限 |