使用 pgAdmin 进行远程 PostgreSQL 连接

2023-11-22

我正在尝试通过基于 Ubuntu 16.04 的服务器上运行的 PostgreSQL 建立远程连接。到目前为止,当我单击 pgAdmin 上的“保存”按钮时,它有点冻结,什么也不做。输入 .../manage.py runserver My_droplet_IP:5432 后,我尝试了该网页,并且可以访问。

创建 Droplet 后,我​​按照本教程进行操作。https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-16-04

然后我编辑了settings.py; pg_hba.conf; postgresql.conf 文件

settings.py:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresqlpsycopg2',
'NAME': '.....',
'USER': '....',
'PASSWORD': '....',
'HOST': '127.0.0.1',
'PORT': '5432',

STATICROOT = os.path.join(BASE_DIR, 'static/') - at the end of the page

当然,也用我的 Droplet ip 更改了 ALLOWED HOSTS = ['....'] 。

postgresql.conf listen_address is set to '*'

pg_hba.conf 文件:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

还允许防火墙,并对 5432 进行例外允许。

有任何想法吗?


首先测试是否可以通过以下方式连接到数据库psql:

psql -h ip_address -d name_of_the_database -U username

如果您收到连接拒绝错误,则必须设置错误并检查如果远程连接 PostgreSQL 不起作用,我应该检查什么?

psql: could not connect to server: Connection refused Is the server running on host ip_address

如果远程连接 PostgreSQL 不起作用,我应该检查什么?

  1. 检查认证配置pg_hba.conf

    通常位于 Linux 上 -/etc/postgresql/version/main/pg_hba.conf。 您应该允许对来自所有 IP 地址的特定 IP 的客户端进行身份验证:

    # Database administrative login by Unix domain socket
    local     all            postgres        peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local     all            all             peer
    # IPv4 local connections:
    host     all             all             0.0.0.0/0               md5
    # IPv6 local connections:
    host     all             all             ::0/0                   md5
    #all ips
    host     all             all             all                     md5
    

    有关如何设置的更多信息pg_hba.conf你可以找到文档.

  2. 然后你应该设置监听特定端口。

    你必须找到postgresql.conf。通常位于/etc/postgresql/9.1/main/postgresql.conf)文件并更改带有listen_address的行:

    #listen_address = ''
    

    到(不要忘记删除#,这意味着评论):

    listen_address = '*'
    
  3. 每执行完一步后,您都应该重新启动 Postgresql 服务:

    sudo service postgresql restart
    
  4. 第 2 步之后,您应该在 netstat 命令后的侦听地址中看到端口 5432(或 5433):

    netstat -ntlp
    
  5. 之后你必须在防火墙中打开 PostgreSQL 端口:

    sudo ufw allow 5432
    

    您可以使用以下命令检查防火墙设置(您应该在列表中看到 5432):

    sudo ufw status
    
  6. 如果前面的任何步骤不起作用,您应该检查 PostgreSQL 是否没有在不同的端口(通常是 5433)上运行,并重复前面的步骤。

    当您有更多正在运行的 PostgreSQL 版本或者您升级数据库并忘记停止以前版本的 PostgreSQL 时,这种情况经常发生。

如果您在查找配置文件时遇到问题,可以检查此线程我的 postgres *.conf 文件在哪里?.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pgAdmin 进行远程 PostgreSQL 连接 的相关文章

随机推荐

  • PyQt 将 SIGNAL 连接到多个 SLOT

    我在尝试学习PyQt from rapid gui programming with python and qt目前正在学习Signals and Slots 下面是我的代码的一小段 self connect self dial SIGNA
  • 为什么 C 中“函数名称”的计算结果为 true 以及如何收到警告

    我最近偶然发现 gcc 3 2 2 编写 c 程序的以下行为 在 if 语句中我忘记了函数的大括号并写道 if myFunc 代替if myFunc 尽管我几乎打开了每个警告 但这并没有生成错误或警告 它只是评估为true 首先为什么要编写
  • Eloquent 中保留的列名

    从粗略看Illuminate Database Eloquent Model我可以看到以下实例属性 protected connection protected table protected primaryKey protected pe
  • JDBC 和 Oracle conn.commit 和 conn.setAutocommit 无法正常工作

    我制作了一个 DBManager 类 如下所示 public class DBManager public static String DRIVER oracle jdbc driver OracleDriver public static
  • 在独立的 Java 应用程序中使用 Spring 3 自动装配

    这是我的代码 public class Main public static void main String args Main p new Main p start args Autowired private MyBean myBea
  • 如何将 Bootstrap 列中的内容居中?

    我正在尝试将列的内容居中 看起来对我不起作用 这是我的 HTML div class row div class col xs 1 center block span aaaaaaaaaaaaaaaaaaaaaaaaaaa span div
  • PHP 自动包含

    我想在服务器的每次执行中自动包含一个 PHP 脚本 我希望通过 PHP ini 通过设置或能够在 php 中编写一个简单的扩展并包含我的 php 脚本来完成此操作 您可以设置auto prepend file指令在你的php ini fil
  • 如何提取 SVN 转储?

    我收到了一个 SVN 转储文件 其中包含很多页面 所有 HTML 页面 以及所有服务器端代码 我想将它们分开 但不知道如何做到这一点 我在 Windows 上 根本没有 SVN 亚当 巴特勒的答案几乎是完美的 但我遇到了一些问题 所以这是我
  • 应用程序在到达 main.m 之前在模拟器 5.0 上崩溃 [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 应用程序在使用 Xcode 4 2 和 iOS 5 进入 main 之前崩溃 我正在开发一个在模拟器 4 3 上运行良好的应用程序 但是当我在模拟器 5 0 上尝试它时 它甚至在到达 main
  • Java8 文件流,如何控制文件的关闭?

    假设我有一个Java8Stream
  • 从句子中提取“有用”信息?

    我目前正在尝试理解这种形式的句子 The problem was more with the set top box than the television Restarting the set top box solved the pro
  • null 是一个对象吗?

    为空Object在Java中 如果 null 是一个对象 它将支持以下方法java lang Object例如equals 然而 情况并非如此 对 null 的任何方法调用都会导致NullPointerException 这就是Java语言
  • 将字节数组转换为 int 的更快方法

    有没有比更快的方法BitConverter ToInt32将字节数组转换为 int 值 我实际上尝试了几种不同的方法将四个字节转换为 int BitConverter ToInt32 new byte w x y z 0 BitConver
  • ffmpeg av libs 可以返回准确的 PTS 吗?

    我正在使用使用 IBBP GOP 序列的 mpeg 流 这 DTS PTS 前 4 个 AVPacket 返回的值如下 I 0 3 B 1 1 B 2 2 P 3 6 I 帧上的 PTS 看起来是合法的 但 B 帧上的 PTS 不可能是正确
  • Python错误:“NoneType”对象没有属性“find_all”

    我正在改编一个网络抓取程序 http danielfrg com blog 2013 04 01 nba scraping data disqus thread 将 ESPN 的棒球数据抓取到 CSV 中 但是 当我运行第二段代码来编写游戏
  • 带有符号链接的 mod_xsendfile

    我在 Rails 3 应用程序中使用 xsendfile 时遇到问题 我使用 capistrano 来管理部署 在每个版本中 都有一个指向共享 资产目录的符号链接 例如 var www site releases 1234 assets g
  • 部署应用程序引擎应用程序时如何处理敏感配置信息?

    示例 我有一个应用程序需要访问提供身份验证令牌的 API myApi MyApi token my private sensible token 我想避免在属于项目一部分的配置文件中包含该私有令牌 我想到的一个解决方案是在一个单独的代理应用
  • 当Java自动更新时更新Windows路径变量?

    这个问题询问如何在 Windows 中设置路径变量以包含 Java bin 目录 从而允许您在提示符下使用 javac 命令 针对此问题发布的解决方案指出您应该对最新 Java 安装的绝对路径进行硬编码 在这种情况下 它恰好是c progr
  • 如何在不同的包中使用两个同名的类? [复制]

    这个问题在这里已经有答案了 如何访问不同包中具有相同名称的两个类 foo bar myClass class and foo myClass class 所有这些都在同一个班级中 TestRunner Suite class SuiteTe
  • 使用 pgAdmin 进行远程 PostgreSQL 连接

    我正在尝试通过基于 Ubuntu 16 04 的服务器上运行的 PostgreSQL 建立远程连接 到目前为止 当我单击 pgAdmin 上的 保存 按钮时 它有点冻结 什么也不做 输入 manage py runserver My dro