• 解决 Can‘t connect to MySQL server on ‘x‘ (10048) 问题


    初始环境:一台windows 2003服务器,上面跑有 apache,mysql应用服务。
    迁移后: 服务分离,把apache服务放到一台配置较高的 windows 2003服务器上,mysql暂时不动。

    1、
    在迁移的过程中出现了一些异常的的问题,具体表现是在服务访问压力比较大情况下,出现以下错如信息,有时候刷新下就没有了:
    Can't connect to MySQL server on 'x' (10048)

    检查了下系统繁忙时候的apache连接数,不高,是正常的,,于是放狗搜索,原来是这样的问题:
    应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致较低吞吐量.
    一般见于使用mysql的windows 2003服务器.

    ok,刚好对应,找到问题后,马上解决,对该 mysql 服务器进行参数修改(具体怎么修改就不啰嗦了,网上一大堆)

    就等着第二天访问压力大的时候,看看情况,结果槽糕,,还是一样,还是不解!!

    2、
    由于不能解决问题,应该和操作系统的关系比较大,于是打算把2003上的mysql数据库迁移到那台linux上,说干就干,迁移过去后,嘿嘿,还真有用,观察了个2天,没有出现原来的问题。

    3、
    有天,在访问压力比较大的时候,又出现了原来的问题,这下傻眼了,不知道从哪下手。
    仔细分析问题后,试着把那台apache服务器的连接参数也修改了(和修改mysql服务器的方法一样),,观察了一段时间,再也没有出现类似的问题。


    问题所在:
    由于迁移前没有出现这样的问题,是由于apache和mysql是在同一台 windows 2003 服务器上,数据库连接是不通过TCP连接的,所以不会牵扯 TCP 连接的相关参数设置,当迁移后,数据库的连接就要通过 TCP 的连接建立,会和 TCP 的连接参数打交道,而这个连接和2台机器的 TCP 连接参数都有关系,所以当访问压力大的时候,就造成连接资源的消耗。

  • 相关阅读:
    java计算机毕业设计网上书店进销存管理系统源程序+mysql+系统+lw文档+远程调试
    RT-Thread基于STM32H743的网络通信调试
    MySQL 数据库
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wcsncmp
    np.ravel()和np.flatten()
    如何判断无损连接(例题)
    vivado产生报告阅读分析5-时序报告1
    几行 Python 代码就可以提取数百个时间序列特征
    Hbase架构
    阿里首次公开企业级 SpringBoot 实战进阶笔记
  • 原文地址:https://blog.csdn.net/vempire/article/details/127768462