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

Flutter连接PostgreSQL报SocketException连接拒绝错误的解决咨询

PostgreSQL连接被拒绝(SocketException: errno=111)的原因及解决方法

以下是针对你遇到的SocketException: Connection refused (OS Error: Connection refused, errno=111)错误的排查方向和解决步骤:

1. PostgreSQL服务未启动

  • 检查PostgreSQL服务状态:
    • Windows:打开「服务」管理器,找到PostgreSQL相关服务,确认状态为「正在运行」,未启动则右键启动。
    • macOS:终端执行 brew services list 查看状态,未启动则执行 brew services start postgresql。
    • Linux:终端执行 sudo systemctl status postgresql 查看状态,未启动则执行 sudo systemctl start postgresql。

2. PostgreSQL监听地址配置错误

PostgreSQL默认可能仅监听本地socket或特定IP,需修改配置允许外部连接:

  • 找到postgresql.conf配置文件(路径参考:Windows为C:\Program Files\PostgreSQL\<版本>\data;macOS为/usr/local/var/postgres;Linux为/var/lib/postgresql/<版本>/main)。
  • 打开文件,找到listen_addresses项,修改为 listen_addresses = '*'(允许所有IP访问),保存后重启PostgreSQL服务。

3. 端口不匹配或被占用

你的代码使用5432端口,但需确认PostgreSQL实际监听端口:

  • 检查postgresql.conf中的port配置,确保与代码中的5432一致,不一致则修改代码或配置文件。
  • 检查端口是否被其他程序占用:
    • Windows:终端执行 netstat -ano | findstr :5432,若有占用进程,关闭该进程或修改PostgreSQL端口。
    • macOS/Linux:终端执行 lsof -i :5432,查看占用进程并终止,或调整PostgreSQL端口。

4. 防火墙/安全组拦截

防火墙可能阻止了Flutter程序访问PostgreSQL端口:

  • Windows:打开Windows防火墙,添加入站规则,允许5432端口的TCP连接。
  • macOS:进入「系统设置-网络-防火墙」,允许PostgreSQL通过防火墙。
  • Linux:执行 sudo ufw allow 5432(若使用ufw防火墙),或对应开放端口的命令。

5. Flutter运行环境的localhost映射问题

如果在Android模拟器中运行Flutter,localhost指向模拟器自身,而非你的电脑:

  • 替换代码中的"localhost"为电脑的局域网IP(如192.168.1.100),或使用Android模拟器专用映射地址10.0.2.2;iOS模拟器可直接使用localhost。

6. PostgreSQL用户连接权限不足

即使服务正常,用户可能无权限从当前地址连接数据库:

  • 登录PostgreSQL控制台:执行 psql -U postgres。
  • 授予用户数据库权限:执行 GRANT ALL PRIVILEGES ON DATABASE instagram TO postgres;。
  • 修改pg_hba.conf文件,添加连接规则:
    新增一行 host instagram postgres 0.0.0.0/0 md5(允许所有IP通过postgres用户连接instagram数据库,密码验证),保存后重启PostgreSQL服务。

额外提示:代码中的SQL语法错误

你注释的INSERT语句存在语法错误:(Username, 'Name, Surname, Photo)中列名的单引号使用错误,正确写法应为 (Username, "Name", Surname, Photo)(若列名包含大写或特殊字符)或直接写列名(如列名全小写),避免后续连接成功后出现SQL执行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:48:18