Postgresql Golang和通过Ubuntu VPS中的客户端访问postgres?
我试图按照digital ocean教程在服务器模式下配置pgadmin4,但这很长,我必须首先配置apache服务器、python和virtualenv(通过其他两个教程) 我不想在我的服务器上安装这么多依赖项,只是为了通过pgamin 4访问postgres 你们是怎么做到的Postgresql Golang和通过Ubuntu VPS中的客户端访问postgres?,postgresql,go,pgadmin,pgadmin-4,Postgresql,Go,Pgadmin,Pgadmin 4,我试图按照digital ocean教程在服务器模式下配置pgadmin4,但这很长,我必须首先配置apache服务器、python和virtualenv(通过其他两个教程) 我不想在我的服务器上安装这么多依赖项,只是为了通过pgamin 4访问postgres 你们是怎么做到的 我正在通过https运行一个go Web服务器,监听端口443并将80重定向到443,所以这就是我通过webstorm实现从笔记本电脑到ubuntu VPS的连接所做的(我想任何intellij作品也应该与其他IDE一
我正在通过https运行一个go Web服务器,监听端口443并将80重定向到443,所以这就是我通过webstorm实现从笔记本电脑到ubuntu VPS的连接所做的(我想任何intellij作品也应该与其他IDE一起使用) 0登录到您的服务器 1.通常在
/etc/postgresql/10/main下找到postgresql.conf
2. sudo nano postgresql.conf
3.在连接处定位并更换线路
listen_addresses = '*'
然后在同一目录中编辑:sudo nano pg_hba.conf
#TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
Md5表示我与用户及其密码连接
5别忘了允许ufw(防火墙)
打开webstorm>数据库(选项卡)>单击+添加PostgtresSQL源(填写相关信息、用户名、密码、数据库名称、主机和端口等)
按“模式”并同步,或按:
Source > Settings > Schemas tab > [check] All Databases > refresh
看到你的另一个答案,我想提供一个更安全的选择
当前方法有什么问题?
您的PostgreSQL实例可以从internet访问。通常,您应该尝试仅在需要时限制访问。特别是如果您没有使用SSL连接到PostgreSQL,像这样的开放端口是流量拦截和暴力攻击的目标
备选方案
看到您正在使用JetBrains IDE,您只需要另外一个步骤来访问数据—设置SSH隧道
这将使用SSH加密开发主机和服务器之间的所有连接,而不会将PostgreSQL暴露给外部世界
在Jetbrains IDE中的数据库连接设置中,选择SSH/SSL选项卡并“使用SSH隧道”。在相关输入字段中输入服务器信息和SSH用户+密码/SSH密钥(使用SSH密钥以提高安全性)
撤消为打开防火墙所做的设置更改,并将PostgreSQL配置为侦听所有节点
现在可以通过加密隧道连接到您的数据库,而不会使您的数据库受到任何不必要的攻击。您可以通过Go应用程序访问PostgreSQL数据库,但pgAdmin是一个python应用程序,它必须由python解释器运行。Go没有帮助。是的,我已经通过Go应用程序访问了它。python还可以,但我真的需要apache吗?apache充当python的CGI主机。您需要一个web服务器来充当CGI主机。所以,Apache、Nginx等@Adrian所以我需要把Nginx或Apache放在postgres和golang前面,而不是直接与golang一起服务?如果你想直接从你的PC访问postgres,你要么需要打开postgres的端口,要么设置一个隧道或VPN什么的——postgres不是一个web应用程序,所以Nginx/Apache不会帮助你。Go也帮不了你,除非你想编写自己的Go版本的pgAdmin。pgAdmin可能会帮助您,但您需要在适当的web服务器后面运行它。稍后我会查看它,谢谢!新行在pg_hba.conf
中应该是什么样子?让它隧道ssh连接?
jdbc:postgresql://example.com:5432/my_database_name
Source > Settings > Schemas tab > [check] All Databases > refresh