0.前言

前面一篇讲到反向代理,这一篇讲一下直连数据库。为什么会有这一篇呢?因为有一天有个人问我,这个怎么连数据库?我问他为什么,他说想看看里面的数据。好吧,于是有了今天的文章。

1.postgres数据库

QingdaoU/OnlineJudge用的数据库是postgreSQL,也是一个关系型数据库。默认端口是5432,我们下载一个navcat破解版,最好是15以上的版本,一会用来连数据库。

2.修改docker-compose.yml文件

前面一篇我们说过,修改docker-compose.yml,然后做反代。这篇文章也是,我要手动添加一个端口,用来映射docker里面postgers数据库的5432端口。进入到postgres所在的容器中,输入 netstat -lnpt 可以看到当前5432端口确实处于监听状态。

我们修改docker-compose.yml文件,在oj-postgres最后一行添加一行代码:

ports:
      - "0.0.0.0:5400:5432"

意思是物理机的5400映射到docker的5432端口

保存文件,然后在OJ所在目录重新执行 docker-compose up -d

记得在物理机上开启5400端口!

3.登录数据库

我们选择PostgreSQL

数据库:onlinejudge 用户名:onlinejudge 密码:onlinejudge

可以看到我们数据库的数据正常显示出来。

4.后记

非常非常不建议直连数据库,这相当于把数据暴露在外,因为是个开源项目,数据库的用户名和密码都写在yml文件中,如果开放数据库很可能数据全部暴露。


所在目录:OnlineJudge