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

Spring Boot部署VPS访问数据库关联页面报Servlet.service()错误

问题排查与解决步骤

首先你的报错信息如下:

ERROR 7379 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.ExceptionInInitializerError] with root cause

你可以按照以下顺序逐步排查问题:

1. 基础运行与端口权限检查

  • 先确认VPS上的MySQL服务是否正常启动,执行systemctl status mysql(部分系统为mysqld)查看运行状态,异常的话先重启MySQL服务。
  • 若使用公网IP连接报错,检查VPS安全组、防火墙是否放开3306端口的入站规则,同时修改MySQL配置文件(一般为/etc/mysql/my.cnf)中的bind-address参数为0.0.0.0(生产环境建议限定为指定访问IP),修改后重启MySQL生效。
  • 若使用localhost连接也报错,直接在VPS本地执行mysql -u 你的数据库用户名 -p测试能否正常登录,排除本地Socket连接异常的问题。

2. 数据库账号权限验证

  • 公网IP连接场景下,确认你的数据库账号允许公网访问,执行SQL语句grant all privileges on kuponi.* to '你的用户名'@'%' identified by '你的密码';,执行后运行FLUSH PRIVILEGES;刷新权限。
  • localhost连接场景下,确认账号已授权'你的用户名'@'localhost'的访问权限,授权方法同上。
  • 权限配置完成后,直接在VPS本地执行mysql -h 你的VPS公网IP -u 用户名 -p测试连接,能正常进入则说明权限配置无问题。

3. JDBC连接配置修正

  • 高版本MySQL(8.0+)需要补充时区、SSL等必要参数,完整的连接URL示例:jdbc:mysql://你的VPS公网IP:3306/kuponi?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
  • 检查配置文件中的数据库用户名、密码是否拼写正确,无多余空格、特殊字符未转义的问题。

4. 代码与依赖排查

  • 报错中的ExceptionInInitializerError代表静态资源初始化失败,检查你的数据库相关配置类、DAO层代码的静态代码块、静态变量是否存在加载异常,比如驱动类路径配置错误。
  • 确认项目依赖中的MySQL连接驱动版本,和VPS上安装的MySQL大版本匹配,避免版本不兼容导致的初始化失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:54:07