Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Golang和通过Ubuntu VPS中的客户端访问postgres?_Postgresql_Go_Pgadmin_Pgadmin 4 - Fatal编程技术网

Postgresql Golang和通过Ubuntu VPS中的客户端访问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一

我试图按照digital ocean教程在服务器模式下配置pgadmin4,但这很长,我必须首先配置apache服务器、python和virtualenv(通过其他两个教程)

我不想在我的服务器上安装这么多依赖项,只是为了通过pgamin 4访问postgres

你们是怎么做到的


我正在通过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