使用下面的两个类,我尝试连接到一个MySQL数据库。但是,我总是得到这样的错误:
SSL 09 22:46:52 CET 2015 WARN:不建议在没有服务器身份验证的情况下建立
连接。根据MySQL 5.5.45+的要求,如果未设置explicit option,则必须默认建立5.6.26+和5.7.6+连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任库。
这是包含main
方法的测试类:
public class TestDatabase {
public static void main(String[] args) {
Database db = new Database();
try {
db.connect();
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
}
这是Database
类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
private Connection con;
public void connect() throws Exception{
if(con != null) return;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw new Exception("No database");
}
String connectionURL = "jdbc:mysql://localhost:3306/Peoples";
con = DriverManager.getConnection(connectionURL, "root", "milos23");
}
public void close(){
if(con != null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
发布于 2015-12-24 15:48:29
您的连接URL应如下所示:
jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false
这将禁用SSL并抑制SSL错误。
发布于 2016-11-15 00:14:18
使用SSL但关闭服务器验证(例如在您自己的计算机上处于开发模式时)如何:
jdbc:mysql://localhost:3306/Peoples?verifyServerCertificate=false&useSSL=true
发布于 2018-01-25 15:38:15
像这样提到url
:
jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&useSSL=false
但在xml配置中,当您提到&
sign时,集成开发环境会显示以下错误:
对实体"useSSL“的引用必须以分隔符';‘结尾。
然后你必须显式地使用&
而不是&
才能被xml
确定为&
,因此在xml
中,你必须在xml配置中给出url,如下所示:
<property name="connection.url">jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&useSSL=false</property>
https://stackoverflow.com/questions/34189756
复制相似问题