项目更新线上 数据库同步结构是个很糟心的事
或者是本地录入的数据要存储到线上 数据不能多也不能少 还必须保证生产的数据万无一失
头是真的大
我这里分享下我是怎么解决这个问题的
其实就是把公网的数据库使用nginx 临时暴露出来 更新完后在从nginx屏蔽掉(主要还是为了安全 生产暴露到公网本身就不安全)
nginx.conf
stream {
upstream mysql {
#3306为mysql的端口
server localhost:3306;
}
server {
#1234为对外访问的端口 安全组需要开放该端口
listen 1234;
#连接超时
proxy_connect_timeout 10s;
#响应超时
proxy_timeout 30s;
proxy_pass mysql;
}
upstream pgsql {
#3306为mysql的端口
server localhost:5432;
}
server {
#5433为对外访问的端口 安全组需要开放该端口
listen 5433;
#连接超时
proxy_connect_timeout 10s;
#响应超时
proxy_timeout 30s;
proxy_pass pgsql;
}
}
确保配置没问题
nginx -t;
刷新配置
nginx -s reload;
接着就可以使用 Navicat 工具数据库结构同步了
![2025-05-17T02:52:08.png][1]
![2025-05-17T02:52:29.png][2]
![2025-05-17T02:56:41.png][3]
## 后面点击部署即可
### 数据同步同理
[1]: https://likefr.com/usr/uploads/2025/05/359025864.png
[2]: https://likefr.com/usr/uploads/2025/05/859633826.png