错误档案2:MySQL8.0连接C3P0的问题
前言
大家好呀,我是 白墨,一个热爱学习与划水的矛盾体。
前两天在使用C3P0连接池时遇到问题,运行测试用的DBUTlis类抛出了异常,可耽误了我好些时间!记录一下差错经过。
问题出现
异常如下:
java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
项目配置如下:
首先是测试用的DBUTil类:
public class DBUtil {
static DataSource ds = new ComboPooledDataSource();
public static Connection getConn() throws SQLException {
return ds.getConnection();
}
public static DataSource getDataSource() {
return ds;
}
public static void main(String[] args) {
try {
System.out.println(getConn());
} catch (SQLException e) {
e.printStackTrace();
}
}
}
然后是jar包:
解决方法
我们先不管上面那行报错的内容了,全部都检查一遍。可以先看4、5条。
- 检查DBUTil的代码,虽然有点冗余,但是没有错误,能达到测试连接成功与否的目的。
- 检查xml配置文件的名字是否有错,以及是否与lib包同级。
名字为“c3p0-config.xml”,且都在src目录下一级,没有问题。
3. 检查jar包是否导入。
- 检查mysql连接java的jar的版本与数据库的版本是否一致。重点来了!
登录数据库查看数据库版本:mysql -u root -p
- 检查xml文件中的配置。检查后发现方框中的内容不适用于mysql8.0,需要修改。
框起来的两行修改后如下:
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/t2?useSSL=false&serverTimezone=UTC</property>
至此大功告成,成功连接数据库。特别感谢这篇博客给我的帮助!
结论
- 数据库驱动jar包要与数据库版本相对应;
- MySQL8.0以上的版本,URL连接需要添加时区参数。
- 8.0以上的驱动,驱动类选择时中间多了个
cj
,即com.mysql.cj.jdbc.Driver
好啦,本文到此结束!点个关注吧?点个关注吧?点个关注吧~
在公众号【白墨是个程序猿】回复【资料】获取我多年收集的各种教程、软件、电子书资源~ (收藏了=学会了)
错误档案2:MySQL8.0连接C3P0的问题的更多相关文章
- 初学者在Mysql8.0连接时的几个常见基本问题
最近在做一些java web整合时使用的最新版Mysql8.0.3,发现Mysql连接中的几个问题,总结如下: package db; import java.sql.*; public class ...
- 使用Navicat连接MySQL8.0版本报1251错误
出现1251错误是因为,MySQL8.0版本改变了密码的验证规则caching_sha2_password,MySQL之前的版本验证规则是mysql_native_password,现在需要修改MyS ...
- MySQL8.0远程连接和用户授权相关设置
文章目录 1.开启MySQL远程连接 2.关闭MySQL远程连接 3.修改防火墙规则,开放端口 4.创建用户以及给用户授权 5.删除用户及权限 1.开启MySQL远程连接 mysql -u root ...
- win10安装两个不同版本的mysql(mysql5.7和mysql-8.0.19)
win10中安装mysql5.7后,安装mysql-8.0.19 在D:\mysql-8.0.19-winx64目录下创建一个my.ini文件 [mysqld] # 设置3307端口 port # 设 ...
- PDO连接mysql8.0报PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers错误
安装mysql8.0之后,尝试使用php连接mysql,总是报PDO::__construct(): Server sent charset (255) unknown to the client. ...
- SQLyog连接MySQL8.0报2058错误的解决方案
引言 用SQLyog连接MySQL8.0(社区版:mysql-installer-community-8.0.15.0.msi),出现错误2058(Plugin caching_sha2_passwo ...
- Navicat连接Mysql8.0.17出现1251错误 / 或者Navicat Premium出现2059错误
Navicat连接Mysql8.0.17出现1251错误 重装了电脑之后,好多软件出了问题,经过一系列的插件安装,mysql终于安装好了 但是Navicat又抽筋了~~~额(⊙o⊙)... 在网上查的 ...
- dbcp_c3p0连接mysql8.0.13
背景 学习数据库的使用,上次没有记录,现在都回忆不起来了,所以这次重新学的时候顺便记录下. 配置环境 win10 jdk11 idea mysql8.0.13 DBCP连接使用 用配置文件目前我连接不 ...
- 登录注册页面(连接MySQL8.0.15版本)
原文链接:https://mp.weixin.qq.com/s?__biz=MzI4Njg5MDA5NA==&mid=2247483779&idx=1&sn=e23e68e96 ...
随机推荐
- Day003 +和字符串使用的问题
先看一段代码 int a=10; int b=20; System.out.println(""+a+b); System.out.println(a+b+"" ...
- axios提交表单
后端使用@RequestBody接收jsons数据 因为后端接收json数据,所以前端也要发送json 项目的前端是使用layui的数据表单 案例方法 方法一:JSON字符串 提交的数据格式 {&qu ...
- 【vue-08】vuex
vuex的作用 简单理解,就是将多个组件共享的变量统一放到一个地方去管理,比如用户登录时的数据token. 快速上手 安装:npm install vuex 首先,我们在src文件夹下创建一个文件夹: ...
- Arduino+DS18b20+OLED Display
DS18b20获取到温度数值保存到变量中,然后和天气图标还有滚动字幕一起发送到OLED 屏幕上显示 需要用到的库均可在Arduino库管理器下载. 电路图: 图中屏幕接线已在代码中写出,温度传感器da ...
- java-处理大容量文本文件,行内分格符为TAB的方法
以处理某sql文件为例 源文件中行格式为: 123456 7895433 xxxxx yyyyy zzzzz 行间分隔符为 TAB. 转换完后文件中行的格式为: 123456,7895433,xxx ...
- Webpack5构建速度提升令人惊叹,早升级早受益
为什么要升级? webpack4用的好好的,运行稳定,为什么要升级到webpack5, 每次升级,都要经历一场地震,处理许多loader和plugin API的破坏性改变. 请给我们一个充分的升级理由 ...
- ALPHA任务拆解
项目 内容 这个作业属于哪个课程 BUAA2020软件工程 这个作业的要求在哪里 作业要求 我们在这个课程的目标是 学会团队合作,共同开发一个完整的项目 这个作业在哪个具体方面帮助我们实现目标 团队任 ...
- ES 6 中的箭头函数及用法
ES6标准新增了一种新的函数:Arrow Function(箭头函数). 主要的几种写法如下: 组成: 参数 => 语句, 参数不是1个: (参数,参数2)=>语句 语句不止一条: 参数 ...
- 15.Git
1.Git介绍 1.1版本控制(理解) 无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况 1.2开发中存在的问题(理解) 程序员小明负责的模块就要完成了,就在即将提交发布之前的一瞬间 ...
- 用python输出未来时间,递增
输入当前时间,之前与之后的365天时间日期 按格式化输出 #!/usr/bin/evn python # -*- coding: UTF-8 -*- # import time import date ...