MySQL社区

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 4259|回复: 0

在Windows上与MySQL服务器的连接失败

[复制链接]
发表于 2007-10-29 23:05:28 | 显示全部楼层 |阅读模式
当你在具有很多TCP/IP连接的Windows上运行MySQL服务器,并经常在客户端上遇到“无法连接到MySQL服务器”错误时,可能是因为Windows不允许足够的临时(短命)端口用于这类连接。 默认情况下,Windows允许用于使用5000个临时(短命)TCP端口。任何端口关闭后,它将在TIME_WAIT状态保持120秒。与重新初始化全新的连接相比,该状态允许以更低的开销重新使用连接。但是,在该时间逝去前,无法再次使用该端口。

对于小的可用TCP端口堆栈(5000),以及具有TIME_WAIT状态的大量在短时间内打开和关闭的TCP端口,你很可能遇到端口耗尽问题。处理该问题的方法有两种:
    • 通过调查连接池以及可能的持久连接,减少快速消耗的TCP端口数。
    • 调整Windows注册表中的某些设置(请参见下面)。
      要点:下述步骤涉及更改Windows 注册表。更改注册表之前,请备份注册表,并确认你已掌握在出现问题时恢复注册表的方法。关于备份年、恢复和编辑注册表的更多信息,请请参见Microsoft知识库中的下述文献:http://support.microsoft.com/kb/256986/EN-US/

      启动注册表编辑器(Regedt32.exe)。


      在注册表中确定下述键值的位置:

             HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters·
       在“编辑”菜单上点击“添加值”,然后增加下述注册值:

        Value Name: MaxUserPort·
        Data Type: REG_DWORD
·
        Value: 65534


它用于设置为任何用户提供的临时端口数。有效范围介于5000和65534之间(十进制)。默认值为0x1388(5000,十进制)。

    • 在“编辑”菜单上点击“添加值”,然后增加下述注册值:

           Value Name: TcpTimedWaitDelay
      ·
           Data Type: REG_DWORD
      ·
           Value: 30

它用于设置关闭之前将TCP端口连接保持在TIME_WAIT状态的秒数。有效范围介于0秒和300秒之间。默认值为0x78(120秒)。

    • 退出注册表编辑器。

    • 重新引导机器。

注释:撤销上述设置十分简单,就像删除你创建的注册表一样。

[ 本帖最后由 jeff 于 2007-10-30 16:37 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|MySQL社区 ( 京ICP备07012489号   
联系人:周生; 联系电话:13911732319

GMT+8, 2024-4-19 10:24 , Processed in 0.065219 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表