项目更新线上 数据库同步结构是个很糟心的事

或者是本地录入的数据要存储到线上 数据不能多也不能少 还必须保证生产的数据万无一失

头是真的大

我这里分享下我是怎么解决这个问题的

其实就是把公网的数据库使用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
最后修改:2025 年 05 月 17 日
如果觉得我的文章对你有用,请随意赞赏