【发布时间】:2022-11-20 19:49:32
【问题描述】:
我在 AWS 上运行 Postgresql 数据库,后端是 Django。在一些请求之后,比如说 50,它会引发错误“OperationalError:由于管理员命令 SSL 连接意外关闭而终止连接”,但数据库仍将保持活动状态。起初,它在一些请求后抛出“OperationalError: FATAL: remaining connection slots are reserved for non-replication superuser connections”,所以我有一个脚本可以关闭打开的连接。这是脚本:
export PGPASSWORD='mypassword'
psql --host=dbhost.myregion.rds.amazonaws.com --port=5432 --username=user --dbname=name \
-c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled')
AND usename != 'rdsadmin';"
但错误不断出现。我也试过将 max_connections 增加到 150,但仍然无济于事。我也尝试过使用 AWS RDS 代理,但仍然没有希望。
以下是我如何从 Django 连接到数据库:
DATABASES = {
'default': {
'ENGINE': config('DB_ENGINE'),
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD': config('DB_PASSWORD'),
'HOST': config('DB_HOST'),
'PORT': config('DB_PORT'),
'CONN_MAX_AGE': 0
}
}
【问题讨论】:
标签: django postgresql amazon-web-services amazon-rds