MySQLNonTransientConnectionException
mysql8.0
·
相信报错信息:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Could not create connection to database server
最近在做环境部署时,因为mysql5.0一直安装失败;
所以直接升级mysql 8.0,一步到位;然而后续出现一些问题,服务启动一直失败,报以上错误,
搜索了一下,说是mysql驱动jar报不匹配导致
因为之前一直使用的时mysql-connector-java-5.1.37.jar(我们使用的是lib包)
pom应该是用的这个:
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
所以我们去网上下载一个8.0的jar包;
多说一句:网上那些把包做成要钱的,是真的够了
从以上路径免费下载
Maven Repository: mysql » mysql-connector-java » 5.1.37 (mvnrepository.com)
8.0版本pom
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
下载完成后,删除旧jar包,把新包放在旧包位置,这不用教吧,注意,如果存在两个jar包,也会报错,jar包冲突;
最后修改config.properties(数据库配置文件)driver:......
jdbc.driver=com.mysql.jc.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.91.100:3306/ssm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
jdbc.username=root
jdbc.password=000000
最后启动服务成功;
另为避免重复启动服务,步骤繁多,可使用原生jdbc操作连接,代码如下
package com.cn.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* <p>单独的jdbc程序</p>
*
* @author woniu
* @version 1.0
* @date 2015-06-10
*/
public class JdbcTest {
public static void main(String[] args) {
Connection connection = null;//连接
PreparedStatement ps = null;//预编译的statement
ResultSet rs = null;//结果集
try {
//1、注册驱动
Class.forName("com.mysql.jc.jdbc.Driver");
//2、通过驱动管理类获取数据库的连接
connection = DriverManager.getConnection("jdbc:mysql://152.136.237.100:3306/ssm?characterEncoding=utf-8", "root", "000000");
//3、建立sql语句,向数据库发起要求;获取预处理的statement
String sql = "select * from accounts where aid = ? ";
ps = connection.prepareStatement(sql);
ps.setString(1, "1");
//4、获取结果集
rs = ps.executeQuery();
//5、处理结果集
while (rs.next()) {
System.out.println(rs.getString("number") + " " + rs.getString("balance"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//6、释放资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)