/etc/my.cnf —— 通用標準位置/etc/mysql/my.cnf —— Debian/Ubuntu 系列默認/usr/local/mysql/etc/my.cnf —— 源碼編譯安裝常見路徑⚠️ 修改非生效配置文件是常見坑點,必須確認實際讀取路徑。
mysqld --help --verbose 2>/dev/null | grep -A 1 'Default options'
輸出示例:
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
按順序讀取,後者覆蓋前者同名配置。單實例部署此法最快。
ps aux | grep mysqld | grep -v grep
若啟動命令包含 --defaults-file=/path/to/my.cnf,即為指定配置文件。
mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';" -- 或查詢配置文件相關變量 SHOW VARIABLES LIKE '%cnf%';
結合 datadir 推斷配置文件所在目錄(通常同級或上級 etc 目錄)。
my.cnf,通過 --defaults-file 指定mysqld --defaults-file=/etc/mysql/instance1.cnf --help --verbose 驗證具體實例配置SHOW VARIABLES LIKE 'max_connections'; -- 對比修改前後數值 SELECT @@max_connections;
優先用 mysqld --help --verbose | grep 'Default options' 定位讀取順序;結合進程參數確認實際生效文件;修改後重啟服務並用 SHOW VARIABLES 驗證。避免盲目編輯 /etc/my.cnf 導致配置不生效。