带有 MariaDB 的 Spring Boot:驱动程序尚未从服务器收到任何数据包

SpringBoot with MariaDB: The driver has not received any packets from the server

我有一个 MariaDB,当与 sequel Pro 连接时,我使用此凭据并且可以连接

我用的是SpringBoot

spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db
spring.datasource.username=pradera_usr
spring.datasource.password=Mddejh847h$#@

但是我有这个错误:

Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400)
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243)
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402)
    at java.base/java.net.Socket.connect(Socket.java:591)
    at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
    at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
    ... 81 common frames omitted
2020-05-31 12:30  [restartedMain] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2020-05-31 12:30  [restartedMain] ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
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.

这是pom.xml中的依赖:

<dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>

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

试试这个作为连接字符串:

spring.datasource.url=jdbc:mysql://172.105.50.55:3306/pradera_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

pom.xml :

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

在 运行 你的数据库的机器上添加你的 ip 作为端口 3306 上允许的连接

Linux:

iptables -I INPUT -p tcp -s your.ip.address.here --dport 3306 -j ACCEPT

Windows: 打开开始菜单,在搜索栏中输入:Windows防火墙,打开左侧高级设置,select入站规则,点击右侧新建规则按钮,Select端口,点击下一步, select tcp 并指定端口 3306,按下一步,允许连接,然后通过 selecting Domain, private, public 并为规则本身选择一个名称来完成。

检查服务是否 运行 和 enable/start 它。

Linux:

sudo systemctl status mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb

Windows:打开开始菜单,搜索Services.msc,在服务选项卡中找到您的mariadb服务并通过右键单击它来修改它的状态.

希望对您有所帮助。