Can not read response from server. Expected to read 4 bytes, read 0 bytes be

22 篇文章 4 订阅

springboot项目启动时连接mysql时提示,Can not read response from server. Expected to read 4 bytes, read 0 bytes be……

解决办法:

1、mysql服务可能down了

ps -ef|grep mysqld ,会有僵尸进程mysqld,启动kill -9 进程号

先重启一下mysql,再连接一下试试。如果不行再看下一步

(亲身体会,我的mac mysql使用navicat可以连接,但是启动java项目就连不上,报上面错误,kill掉再启动就好了。)

补充,后来发现是每次导入数据库后(使用source命令),java项目就连不上,重启一下mysql后就好了。

2、检查数据库连接池的参数(尽量开发环境连接数不要设置太大)

spring.datasource.max-active=100
spring.datasource.max-idle=20
spring.datasource.min-idle=8
spring.datasource.initial-size=10

使用sql语句查询一下最大连接数:

show VARIABLES like 'max_connections'

修改数据库连接数sql语句:

set GLOBAL max_connections=3600;

3、检查数据库连接超时时间

show VARIABLES like 'wait_timeout'

修改数据库连接超时时间sql语句:

//设置交互式连接超时时间,例如mysql客户端
set session interactive_timeout=28800;
set GLOBAL interactive_timeout=28800;

//设置非交互式连接超时时间,例如jdbc
set session wait_timeout=28800;
set GLOBAL wait_timeout=28800;

 

注意:

以上修改都是临时的,重启mysql后失效。

如果要永久修改如下:

需要修改mysql配置文件

[mysqld]
wait_timeout    = 28800
interactive_timeout    =  28800
#增加以上两列即可,因为官方文档要求修改此参数必须同时修改interactive_timeout

 

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值