在阿里云配置了 MySql(RDS) 的读写分离地址后,在 PHP 中使用该地址进行更新操作时提示如下报错:

1.提示错误

MySQL server has gone away (SQL:xxx)

此时切换回 主数据的 连接地址就恢复正常不再报错。

提交工单获得的答复是 TIME_WAIT 过多。

2.目前了解的情况

一. TIME_WAIT 连接数如下:

[[email protected] ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

CLOSE_WAIT 3

ESTABLISHED 568

TIME_WAIT 1268

二. 多数 TIME_WAIT 如下,后者( 192.168.0.10:6379 )是 Redis Docker 容器的地址、端口。

tcp 0 0 192.168.0.1:35180 192.168.0.10:6379 TIME_WAIT

tcp 0 0 192.168.0.1:34520 192.168.0.10:6379 TIME_WAIT

tcp 0 0 192.168.0.1:34798 192.168.0.10:6379 TIME_WAIT

tcp 0 0 192.168.0.1:49738 192.168.0.8:9000 TIME_WAIT

tcp 0 0 192.168.0.1:36198 192.168.0.10:6379 TIME_WAIT

tcp 0 0 192.168.0.1:34762 192.168.0.10:6379 TIME_WAIT

三.

本机的 PHP、Nginx、Redis 运行在不同的容器中。

google 到减少 TIME_WAIT 的方法是:

修改 /proc/sys/net/ipv4/tcp_tw_recycle 等参数

但是又有相关文献说明修改该参数会导致 NAT 网络下的客户端连不上..遂放弃修改

3.目前想请教大家的地方

1.TIME_WAIT 过多会导致上述问题吗?如果是,那么为什么通过主数据的地址连接没问题,通过读写分离地址去连接就有问题呢?(实际上在另一台服务器上连接两个地址都没有问题...)

2.修改 tcp_tw_reuse 参数是否可以减少服务器 TIME_WAIT 的数量呢,资料上讲该参数主要用于客户端,但这里的客户端指连接 Redis 的机器( 192.168.0.1 本机)还是指用户呢。

一些自造、怕大家误会的名词

主数据库:最近在原先数据库上增加了只读数据库用于分担压力。原先的可读写数据我叫它主数据库

主数据库的地址、读写分离地址:通过前者连接会直接对主数据库进行读写,通过后者时在进行读操作时会优先从新增的读数据库读取。

先谢谢大家的指教。

mysql time_wait报错_[请教] MySQL server has gone away 与 TIME_WAIT 的关系相关推荐

  1. mysql convert报错_部署mysql版本项目问题记录

    一,com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure报错 将url从jdbc:mysq ...

  2. mysql cast报错_在mysql中使用cast函数报错

    今天遇到在使用mysql的cast函数报错的问题,这个函数的意思是把当前的字段转成某种类型的字段,我使用cast(xxxx as int) 这种方式,但是发现报错了,查阅资料发现 参考这个百度,总结来 ...

  3. datax导入MySQL报错_导入MySQL方法对比

    使用datax导入 1.使用自增id 记录数 耗时(秒) TPS 4248882 347 12244 33404813 4038 8272 2.不使用自增id,使用雪花算法生成id后导入 记录数 耗时 ...

  4. mysql修改存储引擎报错_修改mysql存储引擎备份数据库报错及解决方案

    备份数据库报错 原因:由于监控服务器最近cpu负载比较高.(cpu4核心,负载2.7左右)感觉很奇怪,因为别的服务器mysql占用的资源并不多,因此我首先优化了数据库的配置文件.cpu稍微下降了一点, ...

  5. mysql pxc 报错_登录mysqlpxc报错找不到库文件libreadline.so.7

    1.1简述: 基于上篇博文,为了部署mysqlpxc集群环境,需要开启3个vmware虚拟机实例来部署3个mysqlpxc实例. 第一篇博文中在初始化mysqlpxc实例后,登录实例时,报错提示: [ ...

  6. 打开mysql 的时候报错_关于mysql的启动报错处理

    昨天使用rpm安装了一个mysql最新版本,在安装的时候因为系统里面自带了mysql5.1的版本.所以我在安装mysql5.5的时候一直报错,故使用yum -y remove mysql*将老版本的安 ...

  7. mysql outer join报错_千与千寻-MySQL联结join

    MySQL的联查包括外联结,內联结,自然联结,cross联结等等. 1.cross join cross join是对两个表执行笛卡尔运算,显示所有两个表的组合返回m*n行.它可以省略掉cross,或 ...

  8. mysql启动报错:Cant start server cant check PID filepath No such file or directory

    问题显现:问题排查1.象通过 systemctl status mysqld.service 命令查看状态现在是未启动成功 正在启动中 2.查看mysql启动日志 cat /var/log/mysql ...

  9. mysql 2003报错_为什么不建议在 MySQL 中使用 UTF-8?

    正文 记得去年我在往MySQL存入emoji表情 时,一直出错,无法导入.后来找到办法 -- 通过把 utf8 改成 utf8mb4 就可以了,并没有深究. 一年后,我看到一篇文章讲到emoji文字占 ...

最新文章

  1. 普通话测试第四题评分标准_普通话考试中命题说话的扣分标准
  2. centos6 进入命令行_CentOS 6.x误删libc.so.6,紧急恢复
  3. c语言蓝桥杯矩阵乘法,蓝桥杯 基础练习 矩阵乘法
  4. python—while循环、字符串
  5. java二次排序_使用java 实现二次排序
  6. java bean参数清空_给bean的属性赋值
  7. get post请求区别_网页常见的两种请求方式Get和Post
  8. 第十六讲:菜单 Android Menu(转)
  9. WiFi PHY技术之自动增益控制(AGC)
  10. DID; PSM; DID-PSM
  11. Java Server Faces_JSF ( JavaServer Faces ) 介绍
  12. 网站页面静态化(一)初识
  13. ESP32产品系列之智能插座(一),框架及硬件设计
  14. 帧率(FPS)计算的六种方法总结
  15. 解密:Gmail移动客户端自动邮件回复技术
  16. win10 开机软件自动启动设置
  17. vk和uview表单图片上传
  18. 特别舍得花钱的穷人们
  19. 在中端5G手机市场,小米要以性能碾压其他竞争对手
  20. Windows 10 MSDN 镜像和版本区别

热门文章

  1. Jenkins使用笔记
  2. 告诉你,赚钱狠的人,都有一个特点?
  3. 如何在自己网站内分享内容到twitter
  4. 程序猿生存指南-17 街角咖啡
  5. 《国民教育大考察》百度应用创新大奖赛 游戏类 二等奖
  6. 美图故事,一个男人美的疯狂
  7. 股市投资必修课十五---让大脑有效运作
  8. Unity插件Obfuscator的使用
  9. html文本框颜色填充颜色设置,PPT怎样给文本框填充颜色 PPT给文本框填充颜色的操作内容...
  10. C++ auto与顶层const和底层const的关系