无法在Django上运行服务器(连接被拒绝)

gg0vcinb  于 2023-01-14  发布在  Go
关注(0)|答案(9)|浏览(283)

我终于(认为)成功安装PostgreSQL和de psycopg2(我使用Windows)。顺便说一句,有什么方法可以检查它是否正常工作?
好吧,现在的问题是我无法启动服务器,当我输入'pythonmanage.pyrunserver'时,它显示如下(在命令的结尾):

conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 8000?
could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 8000?

我已经搜索了很多关于它的文档,例如in this topic,但是我找不到使它正常工作的方法。我已经在pg_hba和postgresql文件中尝试了几次修改,但是没有退出。现在,pg_hba看起来像:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1            md5
# IPv6 local connections:
host    all             all             127.0.0.1            md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

postgresql配置如下所示:

# - Connection Settings -

listen_addresses = 'localhost'      # what IP address(es) to listen on;
                # comma-separated list of addresses;
                # defaults to 'localhost'; use '*' for all
                # (change requires restart)
port = 8000             # (change requires restart)
max_connections = 100           # (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = ''   # comma-separated list of directories
                # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
                # (change requires restart)
#bonjour = off              # advertise server via Bonjour
                # (change requires restart)
#bonjour_name = ''          # defaults to the computer name

顺便说一句,我的settings.py的数据库看起来像这样:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'database1',                      
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST': 'localhost',
    'PORT': '8000',
    }
}

顺便说一句,我还没有创建数据库,我应该怎么做?PostgreSQL提示符有哪些应用?
我将非常感谢这个问题的帮助,我已经几天的搜索和尝试,但没有退出。非常感谢。

**EDIT 1:**我尝试将settings.py端口更改为5432,但现在错误消息相同,只是更改了端口:

could not connect to server: Connection refused (0x0000274D/10061)
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

配置文件是这样的吗?我应该做些什么改变吗?我找不到答案。我尝试了python manage.py runserver,两者都指示127.0.0.1:8000和8001,但错误信息没有变化。出了什么问题?非常感谢。

utugiqy6

utugiqy61#

对我来说,这是因为postgres没有启动和启用。所以我这样做解决了这个问题:

sudo systemctl start postgresql
sudo systemctl enable postgresql
bhmjp9jg

bhmjp9jg2#

使端口默认为5432

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'database1',                      
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST': 'localhost',
    'PORT': '5432',
    }
}

运行以下命令:

python manage.py runserver 127.0.0.1:8000
jvlzgdj9

jvlzgdj93#

我只是遇到了同样的问题,我只是忘记启动我的Postgres。从我的应用程序打开它并选择“打开psql”解决了这个问题。

ctzwtxfj

ctzwtxfj4#

如果你正在使用Postgresql并在Mac上开发,那么你可以使用下面的命令来启动Postgresql,它应该可以解决你的问题。

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

并阻止它

pg_ctl -D /usr/local/var/postgres stop -s -m fast
goqiplq2

goqiplq25#

尝试删除主机和端口:

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'db_name',
        'USER': 'db_user',
        'PASSWORD': 'db_pass',
    }
}

我的问题是在这里指定主机和/或端口。

vlju58qv

vlju58qv6#

归功于Addicted above。我检查了日志,意识到在某个时候我已经升级了我的Postgres版本。

$ nano server.log

  GNU nano 2.0.6                               File: server.log                                                                     

2020-12-16 02:19:32.273 EST [32414] FATAL:  database files are incompatible with server
2020-12-16 02:19:32.273 EST [32414] DETAIL:  The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.0.

可以用like this来解决。

3j86kqsm

3j86kqsm7#

没有数据库服务器在本地托管和运行。对于mac,您可以使用postgres桌面应用程序在端口5432上打开服务器。

zdwk9cvp

zdwk9cvp8#

我遇到了同样的问题,但在我的情况下,这是由于内存不足。由于内存不足,postgresql无法在/var/run/postgresql/内创建文件.s.PGSQL.5432。因此,请查找内存存储,如果没有可用内存,请释放一些内存,然后尝试重新启动postgresql服务。

mnowg1ta

mnowg1ta9#

我有同样的问题,因为我忘了运行docker。

相关问题