如何解决Python连接Apache AGE数据库时的连接拒绝错误?
解决Apache AGE连接时的"connection refused"错误
先确认PostgreSQL服务是否正在运行
因为Apache AGE基于PostgreSQL搭建,连接失败大概率是PostgreSQL未启动:- Windows:打开「服务」面板,找到PostgreSQL相关服务,查看状态是否为「正在运行」,未运行则手动启动。
- Linux/macOS:终端执行
sudo systemctl status postgresql(systemd系统),或pg_ctl status -D /你的PostgreSQL数据目录路径;未运行的话用sudo systemctl start postgresql启动,macOS通过brew安装的可执行brew services start postgresql。
验证端口配置是否正确
你的代码用了5433,但PostgreSQL默认端口为5432,需确认部署AGE对应的PostgreSQL实例实际端口:
找到PostgreSQL数据目录下的postgresql.conf文件,搜索port参数查看真实端口号。如果端口不匹配,要么修改代码里的port值,要么修改postgresql.conf后重启PostgreSQL服务。检查pg_hba.conf的访问控制规则
该文件管控主机/用户的数据库连接权限,需确保允许本地连接:
找到与postgresql.conf同目录的pg_hba.conf,添加或确认存在以下规则:host all all 127.0.0.1/32 scram-sha-256 host all all ::1/128 scram-sha-256修改完成后重启PostgreSQL服务生效。
确认目标数据库和用户是否存在
用psql本地登录(例如psql -U postgres),执行\l查看是否存在mydatabase,执行\du查看是否存在myuser。
若不存在,依次执行以下SQL命令创建:CREATE DATABASE mydatabase; CREATE USER myuser WITH PASSWORD 'mypassword'; GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;检查本地防火墙设置
确保防火墙未拦截5433端口的入站连接:- Linux:终端执行
sudo ufw allow 5433(使用ufw防火墙的情况下)。 - Windows:打开「Windows Defender防火墙高级设置」,添加入站规则,允许5433端口的TCP连接。
- Linux:终端执行
内容的提问来源于stack exchange,提问作者Prachi
相关产品推荐
相关产品推荐

