暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
Jordan.1
1楼
老师我这个是什么问题为啥链接失败

Tue Nov 07 04:20:51 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 782 milliseconds ago.  The last packet sent successfully to the server was 774 milliseconds ago.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
	at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:201)
	at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4869)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1656)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)
	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)
	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)
	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at jdbcTest.main(jdbcTest.java:22)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
	at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)
	at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:101)
	at sun.security.ssl.TransportContext.kickstart(TransportContext.java:238)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:394)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:373)
	at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:186)
	... 18 more

image.png

尚新途

image.png这样修改url

Jordan.1

Wed Nov 08 02:18:33 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure


The last packet successfully received from the server was 977 milliseconds ago.  The last packet sent successfully to the server was 968 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:201)

at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4869)

at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1656)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:247)

at jdbcTest.main(jdbcTest.java:22)

Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)

at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:101)

at sun.security.ssl.TransportContext.kickstart(TransportContext.java:238)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:394)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:373)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:186)

... 18 more


Process finished with exit code 1

还是一样的问题

尚新途

企业微信找我远程


97
2楼

老师,我这报错是啥问题呀,百度了没找到解决方案,附上代码和报错图片


尚新途

image.png

吴东鹏
3楼

老师,这是什么问题

image.png

:-)
4楼

public class testJdbc {

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

//连接MySql的URL

String url = "jdbc:mysql://localhost:3306/tsql";

//当前数据库用户名

String name = "Default";

//数据库密码

String pwd = "admin";

/**

* 创建连接

*/

//通过反射实现数据库驱动加载与注册

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

//通过DriverManage对象获取数据库的连接对象

Connection connection = DriverManager.getConnection(url, name, pwd);

System.out.println(connection);

}

image.png

老师,这里是有什么问题

:-)

GRANT ALL PRIVILEGES ON *.* TO 'Default'@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION;
我百度了一下,加上这条就可以正常连接了。

尚新途

好的,做的不错。

孙藏不low
5楼

image.png

老师 这一行是什么原因呢?影不影响以后的程序运行呢?

尚新途

上面的是他的日志信息,不影响的

云骥
6楼

No suitable driver found for jdbc

老师他说我没有找到合适的jdbc驱动

尚新途

微信找我给你看一下吧

尘缘
7楼
package com.cai;


import java.net.ConnectException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/*
获取数据库连接测试类
 */
public class JdbcTest {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //连接Mysql数据库的URL
        String url="jdbc:mysql://127.0.0.1:3306/bjsxt";
        //连接数据库的用户名
        String name="root";
        //连接数据库的密码
        String pwd="root";

        //通过反射实现数据库驱动的加载与注册
        Class.forName("com.mysql.jdbc.Driver");
        //通过DriverManager对象获取数据库的连接对象
        Connection connection=DriverManager.getConnection(url,name,pwd);
        System.out.println(connection);
    }
}

没有找到错误,但是存在异常

image.png

尚新途

数据库的密码错误了

三尺剑书千秋雪
8楼

Mon Mar 27 16:22:15 GMT+08:00 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure


The last packet successfully received from the server was 1,405 milliseconds ago.  The last packet sent successfully to the server was 1,405 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:201)

at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4869)

at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1656)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:247)

at com.itbaizhan.jdbcTest.main(jdbcTest.java:15)

Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)

at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:106)

at sun.security.ssl.TransportContext.kickstart(TransportContext.java:238)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:410)

at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:389)

at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:186)

... 18 more

老师我的代码和课的一样可是运行结果是上面这些为什么啊


尚新途

在连接数据库的url上加useSSL=false就可以了。关键数据库的安全检查。

Qin_11
9楼

老师,这个问题要紧吗,我在后面加了useSSL=false也不管用

QQ图片20230326102037.png

尚新途

要紧的,报了这个错,连接不上数据库的,你微信找我,我远程给你弄


你看到我的小熊嘛
10楼
com.itbaizhanjava.sql.Connectionjava.sql.DriverManagerjava.sql.SQLExceptionJdbcTest {
    (String[] args) ClassNotFoundExceptionSQLException {
        String url=String name=String pwd=Class.()Connection connection = DriverManager.(urlnamepwd)System..println(connection)}
}

image.png


老师,这是版本问题吗?这个useSSL=false怎么加,加/吗?

尚新途

image.png

淇瑞
11楼

这是哪里出问题了

尚新途

image.png

淇瑞

为什么要加上这个

尚新途

关闭安全链接,mysql数据库版本较高需要加这个

外桑
12楼

老师,这里能够直接使用DriverManager对象是因为import导入了那个DriverManager类吗?

image.png

尚新途

是的。

尚新途

这个不需要new实例化吗?

尚新途

我在这不太明白这里的DriverManager对象为啥没有经过实例化就可以用了


尚新途

不需要,对于静态方法,我们可以通过类名直接调用。

尚新途

意思是非静态方法需要对象才能调用,非静态方法不需要new是嘛?

尚新途

前面说错了,我想问的是,意思是非静态方法需要对象才能调用,静态方法不需要new就可以直接使用对象是嘛?

尚新途

是的,静态方法可以直接通过类名调用

外桑
13楼

老师,这个不知道出啥问题了?

image.png

尚新途

没问题的,就是一个日志信息,

JackieYuri
14楼

这是为什么,是报错吗

image.png

尚新途

这不是报错,是日志,不需要管。

郝文龙
15楼

1670308050246.jpg

自我检测(5S)