集群從 5.5 升級至 5.6 後,error.log 狂刷 Warning:
[Warning] Storing MySQL user name or password information in the master info repository is not secure...
業務極低峰期 QPS≈1,TPS≈0,寫入間隔 4-10 秒甚至更久。
CHANGE MASTER TO 中明文指定密碼。若搭建主從時帶了密碼,5.6 會在每次重連時記錄此 Warning。slave_net_timeout 秒內未收到 Master 的 Binlog Event,會主動發起重連。默認值 3600 秒,但許多環境調為 5 秒左右以快速發現異常。SET GLOBAL slave_net_timeout = 25; -- 設為 25 秒,覆蓋業務最大寫入間隔
線上建議值:10-30 秒,平衡故障發現速度與誤判率。
INSERT INTO heartbeat ...)保持連接活躍。-- 5.6+ 推薦:不在 CHANGE MASTER 中指定密碼
CHANGE MASTER TO MASTER_HOST='x', MASTER_USER='repl', MASTER_PASSWORD=''; -- 空密碼
-- 搭配 ~/.my.cnf 或 MYSQL_PWD 環境變數提供密碼
| 參數 | 默認值 | 建議值 | 說明 |
|---|---|---|---|
| slave_net_timeout | 3600s | 10-30s | Slave 判定網絡超時發起重連的秒數 |
| master_retry_count | 86400 | 無限/大值 | 重連嘗試次數 |
| master_connect_retry | 60s | 10-60s | 重連間隔 |
參數調優必須結合業務流量特徵。低寫入頻率系統盲目套用「快速故障發現」的小超時值,反而製造虛假告警與重連風暴。觀測業務寫入間隔分佈(P99/P999),設定 slave_net_timeout > Max_Write_Interval 才是科學做法。