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