MySQL 原生複製協議明文傳輸,跨公網/非信任網路極易被竊聽、竄改。雖支援 SSL,但許多二進制套件未啟用(SHOW VARIABLES LIKE '%ssl%' 顯示 have_ssl=NO)。SSH 隧道提供零成本、零配置變更的透明加密方案。
從庫 (Slave) 主庫 (Master)
[應用] → 127.0.0.1:7777 ──SSH 隧道──→ 192.168.1.10:3306 [MySQL]
本地回環 真實 IP
127.0.0.1:7777,流量經 SSH 加密傳輸/etc/ssh/sshd_config 允許 TCP 轉發(預設開啟)useradd -s /bin/false -M mysql_repl
passwd mysql_repl # 設定強密碼或改用金鑰認證ssh -f mysql_repl@master_ip -L 7777:master_ip:3306 -N
-f 背景執行、-N 不執行遠端命令、-L 本地轉發mysql -h 127.0.0.1 -P 7777 -u repl_user -p
-- 注意:不可用 localhost,MySQL 會走 socketmy.cnf[mysqld]
log-bin=mysql-bin
server-id=1
binlog_format=ROW # 或 MIXED
CREATE USER 'repl'@'master_ip' IDENTIFIED BY 'strong_pass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'master_ip';
my.cnf[mysqld]
server-id=2
relay-log=relay-bin
skip-slave-start
replicate-ignore-db=mysql
CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
MASTER_PORT=7777,
MASTER_USER='repl',
MASTER_PASSWORD='strong_pass';
START SLAVE;
ssh-keygen -t rsa -b 4096,公鑰放入主庫 ~/.ssh/authorized_keysautossh -M 0 -f -N -L 7777:master_ip:3306 mysql_repl@master_ip(自動重連)DELETE 無 WHERE,從庫同步執行,資料雙雙全無。仍需邏輯/物理備份。@@read_only=ON,誤寫會導致複製中斷、資料分歧。SSH 隧道以系統級加密替代 MySQL 內建 SSL,部署簡單、相容性極佳。配合金鑰認證、自動重連、延遲監控,即可構建生產可用的加密複製鏈路。