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

Spring Boot连接Supabase数据库遇SocketTimeoutException超时错误求助

Spring Boot连接Supabase PostgreSQL超时(SocketTimeoutException)排查方案

核心排查方向及解决方法

1. 检查Supabase IP白名单配置

Supabase默认会限制数据库的访问IP,若本地IP不在白名单内,会直接导致连接超时:

  • 登录Supabase控制台,进入「数据库」→「连接池」→「IP白名单」
  • 添加本地公网IP(可通过搜索「我的IP」获取),测试阶段可暂时设置为0.0.0.0/0(生产环境禁止这么做)

2. 修正JDBC连接URL的SSL参数

Supabase强制要求SSL连接,未添加SSL参数会引发连接失败或超时,正确配置格式:

spring.datasource.url=jdbc:postgresql://db.xxx.supabase.co:5432/postgres?sslmode=require
spring.datasource.username=postgres
spring.datasource.password=your-database-password

注意替换db.xxx.supabase.co为你的Supabase实例域名,your-database-password为设置的数据库密码。

3. 测试网络连通性

本地网络无法访问Supabase的5432端口是常见超时原因:

  • 用命令测试端口连通性:
    # Linux/macOS
    nc -zv db.xxx.supabase.co 5432
    # Windows(PowerShell)
    Test-NetConnection db.xxx.supabase.co -Port 5432
    
  • 若测试失败,检查本地防火墙/杀毒软件是否拦截5432端口,或公司网络是否有代理/网关限制,需联系网管添加白名单。

4. 调整连接超时参数

默认超时时间可能不足以应对网络延迟,在application.properties中添加:

# 连接建立超时(毫秒)
spring.datasource.hikari.connection-timeout=30000
# Socket读写超时(毫秒)
spring.datasource.hikari.socket-timeout=60000

5. 升级PostgreSQL JDBC驱动版本

旧版本驱动可能与Supabase的PostgreSQL版本不兼容,在pom.xml中使用最新稳定版:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.6.0</version> <!-- 可替换为更高稳定版 -->
</dependency>

6. 核对连接参数正确性

再次确认以下参数无错误:

  • Host:必须是Supabase提供的完整域名(如db.abc123.supabase.co),不能省略前缀或写错
  • Username:默认是postgres,除非在Supabase控制台自定义过,否则不要修改
  • Password:确保是设置的数据库密码,注意特殊字符需转义(如密码中的&要写成\&)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:32:36