服务启动时报错Communications link failure

目录

shardingjdbc介绍

好处:

使用场景:

application.yml

application-local.yml

 build.gradle

 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.
	at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:824)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:237)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
	at org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractDataSourceAdapter.createDatabaseType(AbstractDataSourceAdapter.java:76)
	at org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractDataSourceAdapter.createDatabaseType(AbstractDataSourceAdapter.java:65)
	at org.apache.shardingsphere.shardingjdbc.jdbc.adapter.AbstractDataSourceAdapter.<init>(AbstractDataSourceAdapter.java:53)

我的这个报错原因很明显是数据库连接失败

1.检查数据库服务是否正常启动,没启动,起来就好了

2.检查本地和数据库地址的网络通信,能否正常连接

3.确保你的信息(包括主机名、端口号、用户名和密码)正确,并且与 MySQL 服务器上相应的用户授权匹配。

大致就是这几种检查方式,都检查完没问题,基本就解决了

shardingjdbc介绍

Sharding-JDBC 是一个开源的 Java 数据库中间件,它提供了分库分表的功能,可以帮助应用程序轻松地实现数据库的水平扩展和数据分片。下面是 Sharding-JDBC 的一些主要好处和使用场景:

好处:

  1. 数据库水平扩展:Sharding-JDBC 允许将数据分散到多个数据库节点中,实现数据库的水平扩展。通过分库分表,可以有效地提高数据库的容量和性能。

  2. 高性能和负载均衡:Sharding-JDBC 可以根据配置规则将请求路由到正确的数据库节点上,从而实现负载均衡。它还支持读写分离,可以将读操作分发到不同的节点上,提高数据库的读取性能。

  3. 透明的分片策略:Sharding-JDBC 提供了丰富的分片策略,包括精确分片、范围分片和哈希分片等。开发人员只需要简单地配置分片规则,Sharding-JDBC 就会自动处理分片逻辑,对应用程序来说是透明的。

  4. 简化的开发和维护:使用 Sharding-JDBC 可以将数据分片的逻辑与业务逻辑解耦,开发人员无需手动处理数据分片的复杂性。此外,它还提供了自动化的数据迁移和扩容功能,简化了数据库的维护过程。

使用场景:

  1. 大数据量应用:当应用程序需要处理大规模数据集时,Sharding-JDBC 可以将数据分散到多个数据库节点上,提高查询性能和吞吐量。

  2. 高并发应用:当应用程序需要处理大量并发请求时,Sharding-JDBC 可以将请求分发到不同的数据库节点上,实现负载均衡和水平扩展。

  3. SaaS(软件即服务)应用:当构建多租户的 SaaS 应用时,Sharding-JDBC 可以根据租户 ID 将数据分散到不同的数据库中,确保租户之间的数据隔离。

总之,Sharding-JDBC 是一个强大的数据库中间件,适用于需要实现数据库水平扩展和数据分片的应用程序。它可以提高数据库的性能和可伸缩性,简化开发和维护工作。

下面是我的配置文件内容:

application.yml

spring:
  application:
    name: test-data
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  profiles:
    active: test
logging:
  config: classpath:log4j.xml

application-local.yml

server:
  port: 8091
  servlet:
    context-path: /data
eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8078/eureka/
  instance:
    prefer-ip-address: true
    instance-id: ${spring.application.name}:${spring.application.instance_id:${server.port}}
    appname: ${spring.application.name}
customer:
  url: http://localhost:8091/data
spring:
  shardingsphere:
    datasource:
      names: test-data
      test-data:
        driver-class-name: com.mysql.cj.jdbc.Driver
        jdbcUrl: jdbc:mysql://localhost:3306/test-data?useUnicode=true&characterEncoding=UTF-8
        username: root
        password: root
        type: com.zaxxer.hikari.HikariDataSource
    sharding:
      # 配置分表策略:根据split_no作为分片的依据(分片键)
      tables:
        t_sequence:
          # groovy脚本->{}
          actual-data-nodes: test-data.t_sequence_$->{0..1}
          table-strategy:
            inline:
              sharding-column: split_no
              algorithm-expression: t_sequence_$->{split_no%2}
    props:
      sql:
        show: true

 build.gradle

implementation("org.apache.shardingsphere:sharding-jdbc-spring-boot-starter:4.1.1")

了解详细代码可查看springboot+shardingjdbc(只分表、不分库)_spring cloud 只分表不分库-CSDN博客 

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈年小趴菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值