首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >连接到MySQL数据库时有关SSL连接的警告

连接到MySQL数据库时有关SSL连接的警告
EN

Stack Overflow用户
提问于 2015-12-10 05:56:31
回答 19查看 506.1K关注 0票数 340

使用下面的两个类,我尝试连接到一个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方法的测试类:

代码语言:javascript
复制
public class TestDatabase {

    public static void main(String[] args) {
        Database db = new Database();
        try {
            db.connect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        db.close();
    }
}

这是Database类:

代码语言:javascript
复制
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();
            }
        }
    }
}
EN

回答 19

Stack Overflow用户

发布于 2015-12-24 15:48:29

您的连接URL应如下所示:

代码语言:javascript
复制
jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false

这将禁用SSL并抑制SSL错误。

票数 623
EN

Stack Overflow用户

发布于 2016-11-15 00:14:18

使用SSL但关闭服务器验证(例如在您自己的计算机上处于开发模式时)如何:

代码语言:javascript
复制
jdbc:mysql://localhost:3306/Peoples?verifyServerCertificate=false&useSSL=true
票数 138
EN

Stack Overflow用户

发布于 2018-01-25 15:38:15

像这样提到url

代码语言:javascript
复制
jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&useSSL=false

但在xml配置中,当您提到& sign时,集成开发环境会显示以下错误:

对实体"useSSL“的引用必须以分隔符';‘结尾。

然后你必须显式地使用&而不是&才能被xml确定为&,因此在xml中,你必须在xml配置中给出url,如下所示:

代码语言:javascript
复制
<property name="connection.url">jdbc:mysql://hostname:3306/hibernatedb?autoReconnect=true&amp;useSSL=false</property>
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34189756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档