两台电脑不在同一个局域网,MySQL 数据怎么实时同步?可以用 nps 做内网穿透 + MySQL GTID 复制方案,来实现同步目标。
第一步:用 nps 把主库映射到公网
你需要一台有公网 IP 的服务器部署 nps 服务端,然后在主库电脑上运行 npc 客户端,并创建一个 TCP 隧道。比如把主库的 3306 端口映射到公网的 13306 端口,这样从库就能通过 公网IP:13306 访问到主库了。
第二步:配置 MySQL GTID 复制
GTID 的好处是自动断点续传,不用担心断线后找位置。
- 两台 MySQL 的配置文件(
my.cnf)都要加上:server-id=1 # 从库改为2 gtid_mode=ON enforce_gtid_consistency=ON log_bin=mysql-bin改完重启 MySQL。
- 主库创建同步用户:
CREATE USER 'repl'@'%' IDENTIFIED BY '密码'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; - 用
mysqldump把主库现有数据全量备份并导入从库,保证起点一致。 - 在从库执行:
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_Running 和 Slave_SQL_Running 都是 Yes,就成功了。
提醒:MySQL 暴露公网记得设强密码,注意安全。用这套方案,工作室和家里的电脑就能实时同步数据了,有需要的博主可以试试!
© 一梦风神 · 本文采用 CC BY-NC 4.0 协议共享

发表回复