Spring Boot连接cPanel中PostgreSQL数据库的问题及配置求助
Spring Boot连接cPanel PostgreSQL问题解决方案
1. 获取cPanel服务器的PostgreSQL主机地址与端口
- 登录cPanel面板,找到数据库板块下的PostgreSQL数据库入口
- 进入后,页面会显示明确的连接信息:
- 主机地址:一般是cPanel服务器的公网IP、绑定的域名,或服务商提供的专属数据库主机(如
db.yourdomain.com) - 端口:PostgreSQL默认端口为
5432,若服务商有自定义端口,会在连接信息中标注
- 主机地址:一般是cPanel服务器的公网IP、绑定的域名,或服务商提供的专属数据库主机(如
- 也可通过cPanel终端执行
psql -U [你的数据库用户名] -h localhost -p 5432确认本地端口,远程端口通常与本地一致,除非防火墙做了端口转发
2. 配置PostgreSQL数据库接收Spring Boot连接
2.1 分配数据库用户权限
- 在PostgreSQL数据库管理页面,找到目标数据库,点击添加用户到数据库
- 为指定用户分配所需权限(生产环境按需分配,测试可直接勾选所有权限),确保用户拥有
CONNECT、SELECT、INSERT等基础操作权限,保存设置
2.2 开启远程访问权限
- 在cPanel的数据库板块找到PostgreSQL远程访问(部分服务商命名为远程数据库访问)
- 输入Spring Boot应用所在服务器的公网IP,点击添加主机,允许该IP发起远程连接
- 注意:生产环境禁止使用
%允许所有IP访问,仅开放业务所需的特定IP
2.3 调整SSL连接设置
- cPanel托管的PostgreSQL通常默认强制SSL连接,需根据需求配置:
- 若要使用SSL连接,确保JDBC URL中包含
sslmode=require参数 - 若需关闭SSL(仅测试环境使用),需在cPanel的PostgreSQL配置中关闭强制SSL选项
- 若要使用SSL连接,确保JDBC URL中包含
3. Spring Boot连接cPanel PostgreSQL完整步骤
步骤1:收集数据库连接信息
从cPanel获取以下信息:数据库名称、主机地址、端口、数据库用户名、密码,以及是否强制SSL连接
步骤2:修正application.properties配置
针对你遇到的两个错误,调整JDBC URL参数:
- 保留
gssEncMode=disable解决GSS编码错误 - 添加SSL参数解决SSL连接错误,示例配置如下:
spring.datasource.url=jdbc:postgresql://[你的主机地址]:[端口]/[数据库名]?gssEncMode=disable&sslmode=require spring.datasource.username=[数据库用户名] spring.datasource.password=[数据库密码] spring.jpa.hibernate.ddl-auto=update server.port=9080 spring.servlet.multipart.max-file-size=500KB spring.servlet.multipart.max-request-size=500KB spring.jackson.serialization.fail-on-empty-beans=false
如果服务商要求验证SSL证书,可添加sslrootcert=/path/to/ca-cert.pem参数,证书可从cPanel的PostgreSQL管理页面下载
步骤3:测试连接并排查问题
- 启动Spring Boot应用,查看日志确认连接状态
- 若仍报错,逐一排查:
- 应用服务器IP是否已添加到cPanel的远程访问列表
- 数据库用户是否拥有足够的连接和操作权限
- cPanel服务器的5432端口是否在防火墙中开放(可联系服务商确认)
- SSL参数是否符合服务商的具体要求
内容的提问来源于stack exchange,提问作者hally-mio
相关产品推荐
相关产品推荐

