자바 - [MySQLNonTransientConnectionException :. 데이터베이스 서버에 대한 연결을 만들 수 없습니다] 解决 方案

문제 설명

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException : 데이터베이스 서버에 대한 연결을 만들 수 없습니다.

분석

MySQL은 잘못된 드라이버를 사용.

솔루션

는 JDBC 항아리 패키지 변경

JDBC 드라이버 및 연결 문자열 URL의 이름을 변경 

// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
//static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
//static final String DB_URL = "jdbc:mysql://localhost:3306/xxxx";
     
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
//如果MySQL-connector-java用的6.0以上的,则driver要使用:com.mysql.cj.jdbc.Driver
//private static String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
//private static String DB_URL = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/xxxx?useSSL=false&serverTimezone=UTC";

참고 :

url은 시간대 설정을 추가해야합니다 :

serverTimezone = GMT % 2B8

(동쪽 여덟 지역의 대신 그리니치 표준시 %의 2B8)

로 설정할 수있다 : 상하이 serverTimezone = UTC serverTimezone = (이상 중국 빠르면 8 시간 시간과, 중국, 아시아 / 상해 또는 아시아 / 홍콩 선택할 수 있습니다 경우)

명시 적으로, MySQL의 5.5.45+ 설정하지 않으면 5.6.26+ 및 5.7.6+ 기본 버전은 SSL 연결이 필요합니다.

SSL 연결을 사용하지 않는 현재의 애플리케이션을 충족하기 위해, verifyServerCertificate 속성은 '거짓'으로 설정됩니다.

SSL 연결을 사용하지 않는 경우, 당신은 명시 적으로 SSL 연결을 사용하지 = false를 설정 useSSL해야합니다.

SSL 연결을 사용해야하는 경우, 서버 인증서 유효성 검사에 대한 신뢰 저장소를 제공하기 위해 필요하며, 세트 useSSL 사실 =

SSL - 보안 소켓 레이어 (보안 소켓 레이어)

메이븐

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--<scope>runtime</scope>-->
            <version>8.0.11</version>
</dependency>

참조 기사

 

https://www.cnblogs.com/xiaoyu666/p/10479636.html

https://www.cnblogs.com/wggj/p/9001899.html

发布了1352 篇原创文章 · 获赞 226 · 访问量 29万+

추천

출처blog.csdn.net/weixin_43272781/article/details/103981203