我只是设置了一个本地mySql数据库。我可以通过命令行和第三方软件(Navicat ..)正确连接到它。
服务器:localhost:3306
用户:root
密码:password
数据库名称:students
但是,当我尝试连接java时,出现错误。
CODE:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Sql {
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306//students?autoReconnect=true&useSSL=false",
"root", "password");
Statement sqlState = conn.createStatement();
} catch (SQLException ex) {
System.out.println("SQLException" + ex.getMessage());
System.out.println("SQLException" + ex.getSQLState());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
输出:
SQLExceptionCould not create connection to database server. Attempted reconnect 3 times. Giving up.
SQLException08001
也尝试过:
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306//students", "root", "password");
和
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306//students?autoReconnect=true&useSSL=false","root", "password");
其他尝试:
防火墙已被禁用。
我将.bin.jar放在:
中安装了JconnectorC:\ Program Files \ Java \ jdk1.8.0_73 \ jre \ lib \ ext
我可以在Eclipse的JRE左侧看到它并且导入不会出错。
备注:
使用终端,工作台或Navicat中的mySQL不会出错,任何查询都可以正常运行,本地服务器正常运行且凭据正确,用户拥有完整的管理员权限。
有什么建议吗?
答案 0 :(得分:0)
此异常可能有4个原因:
在连接MySQL数据库之前检查上述先决条件。
答案 1 :(得分:0)
我最近有一个类似的问题。我的问题最终是MySQL服务器版本为8.0.19,而flyway使用的是Java MySQL库的5.1.40版本。
一旦我将MySQL库版本更新为8.0.19,我的错误就消失了。