gpt4 book ai didi

django - 与 pgAdmin 的远程 PostgreSQL 连接

转载 作者:太空狗 更新时间:2023-10-30 01:59:36 27 4
gpt4 key购买 nike

我正在尝试通过基于 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 的更多信息,您可以在 documentation 中找到.

  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 时,这种情况经常发生。

如果您在查找配置文件时遇到问题,可以查看此线程 Where are my postgres *.conf files? .

关于django - 与 pgAdmin 的远程 PostgreSQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50049463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com