迁移至Ubuntu后Tomcat9运行项目报驱动管理器未初始化错误
报错根因
你遇到的两个报错为因果关系:无法找到tms数据库导致JDBC驱动管理器初始化失败,最终抛出连接获取异常。原有Windows环境下的配置适配的是本地Windows的MySQL运行环境,切换到Ubuntu后需要排查调整以下配置:
MySQL实例基础检查
- 确认Ubuntu上MySQL 8.0.27服务正常运行,执行
systemctl status mysql查看运行状态,异常的话执行systemctl start mysql启动服务 - 确认已创建
tms数据库:登录MySQL后执行SHOW DATABASES;核对库列表,不存在的话执行CREATE DATABASE tms DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;创建 - 确认配置文件中使用的数据库账号拥有
tms库的访问权限,执行GRANT ALL PRIVILEGES ON tms.* TO '配置文件填写的用户名'@'localhost'; FLUSH PRIVILEGES;授权
- 确认Ubuntu上MySQL 8.0.27服务正常运行,执行
连接配置适配调整
- 核对连接地址配置:确认
application.properties/persistence.xml中的端口、IP符合Ubuntu MySQL的实际配置,执行ss -tunlp | grep mysql查看MySQL监听端口,默认3306如果被修改需要同步更新配置 - 核对JDBC连接参数:MySQL 8.0需要在连接串中指定时区,参考正确格式:
jdbc:mysql://localhost:3306/tms?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false,Ubuntu系统时区和Windows不一致时缺少时区参数会直接导致连接失败 - 核对账号密码:Ubuntu默认安装的MySQL root账号默认开启auth_socket认证,不支持密码登录,需要单独修改认证方式或者新建业务账号用于项目连接
- 核对连接地址配置:确认
依赖与容器配置检查
- 确认
pom.xml中引入的mysql-connector-java版本和MySQL 8.0.27兼容,推荐使用同版本驱动避免兼容性问题 - 可以将MySQL驱动包放到Tomcat9的
lib目录下,避免项目依赖和容器依赖冲突导致驱动加载失败
- 确认
验证步骤
配置修改完成后,先在Ubuntu终端执行mysql -u 你的用户名 -p'你的密码' tms测试能否正常连接数据库,确认连接无误后再重启Tomcat服务。
内容的提问来源于stack exchange,提问作者Dhanusha_Perera07
相关产品推荐
相关产品推荐

