JAVA连接MYSQL8.0问题

才解决完mysql8.0远程访问的问题,今天测试java连接又出问题了,虽然使用了8.0的jdbc但是死活连接不上,一度以为是加密方式的问题,后来才发现使用以前的连接方式确实不行了.

jdbc

首先附上jdbc 的jar文件下载地址:https://dev.mysql.com/downloads/file/?id=477057

下载后将jdbc building path

连接代码

附上连接测试代码

package mysqltest;




import java.sql.Connection;
import java.sql.DriverManager;


/**
 * 数据库工具类
 * @author Administrator
 *
 */
public class DbUtil {

	private String dbUrl="jdbc:mysql://localhost:3306/db_msdz?useSSL=FALSE&serverTimezone=UTC"; // 数据库连接地址
	private String dbUserName="root"; // 用户名
	private String dbPassword="997997"; // 密码
	private String jdbcName="com.mysql.cj.jdbc.Driver"; // 驱动名称

	/**
	 * 获取数据库连接
	 * @return
	 * @throws Exception
	 */
	public Connection getCon()throws Exception{
		Class.forName(jdbcName);
		Connection con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
		return con;
	}
	
	/**
	 * 关闭数据库连接
	 * @param con
	 * @throws Exception
	 */
	public void closeCon(Connection con)throws Exception{
		if(con!=null){
			con.close();
		}
	}
	
	public static void main(String[] args) {
		DbUtil dbUtil=new DbUtil();
		try {
			dbUtil.getCon();
			System.out.println("数据库连接成功!");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("数据库连接失败");
		}
	}
}


请自行修改测试

与jdbc5.0的差异

mysql8.0需要使用8.0的jdbc 且url和驱动名称都有改变,具体为
private String jdbcName="com.mysql.jdbc.Driver";变为private String jdbcName="com.mysql.cj.jdbc.Driver";

private String dbUrl="jdbc:mysql://localhost:3306/db_msdz";变为private String dbUrl="jdbc:mysql://localhost:3306/db_msdz?useSSL=FALSE&serverTimezone=UTC";这个链接添加了时区

后记

如果还不明白可以参考csdn的博主:Eclipse连接MySQL数据库 — 8.0版jdbc驱动,有操作动图方便小白理解

posted @ 2018-07-18 17:49  E1sewhere  阅读(434)  评论(0编辑  收藏  举报