【问题标题】:SpringBoot with MariaDB: The driver has not received any packets from the server带有 MariaDB 的 Spring Boot:驱动程序尚未收到来自服务器的任何数据包
【发布时间】:2020-09-18 17:37:12
【问题描述】:

我有一个 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>

【问题讨论】:

    标签: mysql spring spring-boot spring-mvc hikaricp


    【解决方案1】:

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

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

    pom.xml:

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

    【讨论】:

    • 你能用这个用户创建/删除表吗?
    • 我刚刚编辑了我的答案,不知道你有没有看到,数据库名不是你的...
    • 在 pom 文件中有正确的依赖关系吗? (移除了H2并添加了mysql?)
    • 移除 H2 依赖。
    【解决方案2】:

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

    Linux:

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

    窗户: 打开开始菜单,在搜索栏写:Windows防火墙,左侧打开高级设置,选择入站规则,按右侧新规则按钮,选择端口并按next,选择tcp并指定端口3306,按next,允许连接,然后通过选择域、私有、公共并为规则本身选择一个名称来完成。

    检查服务是否正在运行并启用/启动它。

    Linux:

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

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2019-06-14
      • 2011-01-11
      • 1970-01-01
      • 2020-12-25
      • 2017-05-24
      • 2018-08-30
      • 2018-02-03
      • 2017-03-21
      相关资源
      最近更新 更多