System.out.println(getConnection());报错

其他代码正常且为没有被标示是错误的,只有这一句,在编译的时候出问题:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client
代码段是
public static void main(String[] args) throws SQLException{
System.out.println(getConnection());
}
看了两天了~~~~百度了两天了,愁的头发都掉了好多~~~~求解,谢谢
我想想。。。会不会是jar包版本太低了?

mysql 驱动包版本太低了,用高版本的mysql驱动包。

把连接代码贴出看看。

下面用的是 mysql 8.0.12 驱动包,可以参考一下:

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;

public class App {

public static Connection getConnection() throws SQLException {

String url = "jdbc:mysql://127.0.0.1:3306/employees?serverTimezone=UTC&useSSL=false";
String username = "root";
String password = "123456";

return DriverManager.getConnection(url, username, password);
}

public static void main(String[] args) throws ClassNotFoundException, SQLException {

Class.forName("com.mysql.cj.jdbc.Driver");

Connection conn = getConnection();

System.out.println(conn.isClosed());

DatabaseMetaData metaData = conn.getMetaData();

if (metaData != null) {
System.out.println("MySQL版本:" + metaData.getDatabaseProductVersion());
}

conn.close();
}
}

追问

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support authentication protocol requested by server; consider upgrading MySQL client

追答

用高版本的驱动jar包

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-20
这么easy的一个小问题,都费这么大劲。。。追问

这位仁兄,只看只说简单不给答案有点不太可爱呢~~~~~

第2个回答  2018-10-20
看一下你的getconnection是怎么写的吧,里面的用户名密码是否正确