内网穿透+GTID,轻松搞定跨网络MySQL同步

两台电脑不在同一个局域网,MySQL 数据怎么实时同步?可以用 nps 做内网穿透 + MySQL GTID 复制方案,来实现同步目标。

第一步:用 nps 把主库映射到公网

你需要一台有公网 IP 的服务器部署 nps 服务端,然后在主库电脑上运行 npc 客户端,并创建一个 TCP 隧道。比如把主库的 3306 端口映射到公网的 13306 端口,这样从库就能通过 公网IP:13306 访问到主库了。

第二步:配置 MySQL GTID 复制

GTID 的好处是自动断点续传,不用担心断线后找位置。

  1. 两台 MySQL 的配置文件(my.cnf)都要加上:
     server-id=1  # 从库改为2
     gtid_mode=ON
     enforce_gtid_consistency=ON
     log_bin=mysql-bin

    改完重启 MySQL

  2. 主库创建同步用户:
     CREATE USER 'repl'@'%' IDENTIFIED BY '密码';
     GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  3. mysqldump 把主库现有数据全量备份并导入从库,保证起点一致。
  4. 在从库执行:
     CHANGE MASTER TO
       MASTER_HOST='公网IP',
       MASTER_PORT=13306,
       MASTER_USER='repl',
       MASTER_PASSWORD='密码',
       MASTER_AUTO_POSITION=1;
     START SLAVE;

最后在从库跑 SHOW SLAVE STATUS\G;,看到 Slave_IO_RunningSlave_SQL_Running 都是 Yes,就成功了。

提醒:MySQL 暴露公网记得设强密码,注意安全。用这套方案,工作室和家里的电脑就能实时同步数据了,有需要的博主可以试试!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

字数:0

字数:0