Access denied for user …(已解决)
问题描述
代码
import java.sql.*;
public class text {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("Success connect Mysql server!");
} catch (Exception e) {
// TODO: handle exception
}
Connection con;
try {
String uri="jdbc:mysql://localhost:3306/test_data?serverTimezone=UTC?user=root&password=&useSSL=true";
con=DriverManager.getConnection(uri);
System.out.println("Success connect Mysql server!");
} catch (SQLException e) {
System.err.print(e);
// TODO: handle exception
}
}
报错
已解决
只是把后面的“?”改成了“&”就好了
原来的:
String uri="jdbc:mysql://localhost:3306/test_data?serverTimezone=UTC?user=root&password=&useSSL=true";
现在的:
String uri="jdbc:mysql://localhost:3306/test_data?serverTimezone=UTC&user=root&password=&useSSL=true";
现在的结果:
猜测原因:
连接数据库时除了第一项要用“?”开头外其他的都是以“&”开头
String uri="jdbc:mysql://localhost:3306/test_data?serverTimezone=UTC&user=root&password=&useSSL=true";
此时的serverTimezone是第一项,所以以“?”开头,后面的user,password以及useSSL则都以“&”开头。
String url = "jdbc:mysql://localhost:3306/test_data?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC";
改变顺序,令useUnicode为第一个,依然正常运行。