本地springboot項目連接本地mysql報錯。com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure


報錯描述:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Caused by: java.net.SocketTimeoutException: connect timed out

 

1.所使用的mysql-connector-java為8.0.25,mysql也為8.0.25。

2.idea為社區版的。

 

使用測試類測試數據庫連接:就報了上面的錯誤。

package com.example.demo;

import java.sql.SQLException;

import javax.sql.DataSource;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoApplicationTests {

    @Test
    void contextLoads() {
    }

    @Autowired
    DataSource dataSource;

    @Test
     void contextLoad() throws SQLException {
        System.out.println(dataSource.getClass());
        System.out.println(dataSource.getConnection());
    }

查了很多資料,也換了idea版本,mysql版本,發現都不對,

在嘗試https://www.cnblogs.com/lzj-/p/12904279.html 這個修改的時候,發現這位同學說的連接的符號也從“&”換成”&不對,修改了之后還是會報錯,無法解析。

但是受到了一些啟發,把自己的localhost改成了127.0.0.1,發現連接成功。

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncodeing=UTF-8&useSSL=false&serverTimezone=GMT 

//原來是jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncodeing=UTF-8&useSSL=false&serverTimezone=GMT
//直接用spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test 也可以。

spring.datasource.username=xxxx
spring.datasource.password
=xxxxxxx

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM