mysql数据库连接异常处理

在学习SSM的mybatis框架时,连接数据库出现了以下报错:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

即:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
首先进入了mysql insatller community搞了一下跟新,在经过一个多小时的更新操作后,发现数据库还是连接不上
在这里插入图片描述
我看了一下我的xml文件的配置:

<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/baidu/>
			<property name="username" value="root" />
			<property name="password" value="password" />

我的mysql是8.0版本,发现驱动不满足当前版本,跟改为:

继续运行程序,就可以正常连接,读取数据了

第二种情况

在使用spring整合jdbc时,连接池如下(mysql8.0)

		ComboPooledDataSource dataSource = new ComboPooledDataSource();
		dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
		dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/spring_day3?serverTimezone=UTC");
		dataSource.setUser("root");
		dataSource.setPassword("jzb19981128");
	

之前在学习mybatis框架时使用了jdbcUrl(后跟了一系列)可以正常连接,但是在这里一致报错

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; 
nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database!
无法获取JDBC连接;嵌套异常为java.sql.SQLException异常:无法从基础数据库获取连接!

经过各种百度,文章的查找,终于发现是jdbcUrl后缀出现的问题,将其改成下面这样子就可以正常连接数据库

dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/spring_day3?useSSL=false&serverTimezone=GMT" +"&allowPublicKeyRetrieval=true");

发现是serverTimezone的问题

猜你喜欢

转载自blog.csdn.net/weixin_43801116/article/details/106642038