You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CVAT创建超级用户失败:PostgreSQL连接超时问题求助

问题描述

我在Ubuntu 22.04.1 LTS系统上按照CVAT官方安装指南部署,第一步执行顺利,但运行创建超级用户的命令:

docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

数分钟后出现如下错误:

Traceback (most recent call last):
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
self.connection = self.get_new_connection(conn_params)
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
connection = Database.connect(**conn_params)
File "/opt/venv/lib/python3.8/site-packages/psycopg2/init.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection timed out
Is the server running on host "cvat_db" (172.18.0.3) and accepting
TCP/IP connections on port 5432?

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/django/manage.py", line 21, in
execute_from_command_line(sys.argv)
File "/opt/venv/lib/python3.8/site-packages/django/core/management/init.py", line 419, in execute_from_command_line
utility.execute()
File "/opt/venv/lib/python3.8/site-packages/django/core/management/init.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/venv/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/venv/lib/python3.8/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 79, in execute
return super().execute(*args, **options)
File "/opt/venv/lib/python3.8/site-packages/django/core/management/base.py", line 397, in execute
self.check_migrations()
File "/opt/venv/lib/python3.8/site-packages/django/core/management/base.py", line 486, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "/opt/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 18, in init
self.loader = MigrationLoader(self.connection)
File "/opt/venv/lib/python3.8/site-packages/django/db/migrations/loader.py", line 53, in init
self.build_graph()
File "/opt/venv/lib/python3.8/site-packages/django/db/migrations/loader.py", line 220, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/opt/venv/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations
if self.has_table():
File "/opt/venv/lib/python3.8/site-packages/django/db/migrations/recorder.py", line 55, in has_table
with self.connection.cursor() as cursor:
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 259, in cursor
return self._cursor()
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 235, in _cursor
self.ensure_connection()
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File "/opt/venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
self.connection = self.get_new_connection(conn_params)
File "/opt/venv/lib/python3.8/site-packages/django/utils/asyncio.py", line 33, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
connection = Database.connect(**conn_params)
File "/opt/venv/lib/python3.8/site-packages/psycopg2/init.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: Connection timed out
Is the server running on host "cvat_db" (172.18.0.3) and accepting
TCP/IP connections on port 5432?

我曾尝试安装django-auth来解决问题,但没有任何效果。请问该如何修复此问题以正常使用CVAT?

解决方案

这个错误核心是cvat_server容器无法连接到cvat_db(PostgreSQL)容器,以下是针对性修复步骤:

1. 检查cvat_db容器状态

先确认数据库容器是否正常运行:

docker ps | grep cvat_db
  • 若容器未运行,启动它:
    docker start cvat_db
    
  • 若容器状态异常(如Exited),查看日志排查启动失败原因:
    docker logs cvat_db
    

2. 验证容器间网络连通性

进入cvat_server容器,测试与cvat_db的连通性:

docker exec -it cvat_server bash
# 测试ping连通性
ping cvat_db
# 测试5432端口是否开放
telnet cvat_db 5432

如果ping不通,说明Docker网络存在问题,尝试重启Docker服务:

sudo systemctl restart docker

重启后重新启动所有CVAT容器:

docker-compose -f docker-compose.yml up -d

3. 检查PostgreSQL远程连接配置

若cvat_db容器已启动但仍无法连接,进入容器检查配置:

docker exec -it cvat_db bash
# 查看pg_hba.conf,确认允许Docker子网连接
cat /var/lib/postgresql/data/pg_hba.conf

确保存在类似配置:

host    all             all             172.18.0.0/16           scram-sha-256

再检查监听地址设置:

cat /var/lib/postgresql/data/postgresql.conf | grep listen_addresses

确保设置为listen_addresses = '*'。修改配置后重启容器:

docker restart cvat_db

4. 重置CVAT容器环境(以上步骤无效时)

若问题依旧,尝试重置整个环境(注意:此操作会清除所有数据,谨慎执行):

# 停止并删除所有CVAT容器
docker-compose -f docker-compose.yml down
# 删除数据库卷
docker volume rm cvat_db
# 重新构建并启动容器
docker-compose -f docker-compose.yml up -d --build

等待所有容器完全启动(约几分钟)后,再执行创建超级用户命令。

5. 检查系统防火墙设置

确认Ubuntu的ufw防火墙未阻止Docker容器间通信:

sudo ufw status

若防火墙启用,可临时关闭测试:

sudo ufw disable

测试完成后再根据需求重新配置防火墙规则。


内容的提问来源于stack exchange,提问作者arnino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:00:47