`
desert3
  • 浏览: 2139938 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

客户端机器TCP端口被占满导致mysql报Can't connect to MySQL server on 'computername' (10048)

阅读更多
用python程序读取csv数据,然后通过MySQLdb模块插入到数据库,程序运行一小段随机时间后,报错:
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
OperationalError: (2003, "Can't connect to MySQL server on '192.168.3.250' (10048)")

通过360安全卫士-》高级工具-》网络连接查看器看到程序出异常时,当前连接数高达3K多,同时TCP可用端口被占满
同时参考:MySQL(10048)错误解决方案,问题解决

错误出现的原因:
程序处理时,每插入一条数据都经过取得连接,执行插入操作,提交事务,关闭连接的操作。而程序每取得一次新的数据库连接,操作系统都对应开打一个新的TCP请求,端口号是随机取得可用的,而程序关闭数据库连接时,相应的操作系统关闭TCP连接,此时TCP连接并没有被释放,然后占用着操作系统端口,等待回收
由于默认已关闭TCP连接的回收间隔为240S,最大的可用TCP端口号为5000,当创建连接速度过快导致所有可用的小于5000的端口号被占满后,系统报错。

解决方案:
和本错误密切相关的两个windows的注册表项:TcpTimedWaitDelay和MaxUserPort的值.
TcpTimedWaitDelay 确定 TCP/IP 可释放已关闭连接并重用其资源前, 必须经过的时间. 关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态. 此时间期间, 重新打开到客户机和服务器的连接的成本少于建立新连接. 减少此条目的值允许 TCP/IP 更快地释放已关闭的连接, 为新连接提供更多资源.

MaxUserPort 确定从系统请求任何可用用户端口时所用最大端口数,TCP/IP 可指定的最高端口号. 如果建立 TCP 连接最大端口连接大于 5000, 本地计算机响应以下错误信息WSAENOBUFS (10055): 因为系统缺乏足够缓冲区或者因为队列已满而无法执行套接字上操作, 从而导致应用程序的10048错误.

打开注册表编辑器regedit

TcpTimedWaitDelay 设置:
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值
设置此值为十进制 30, 十六进制为 0×0000001e
该值等待时间将是 30 秒。
本项的默认值:0xF0(16进制), 等待时间设置为 240 秒

MaxUserPort 设置(增加最大值端口连接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 MaxUserPort 的新 REG_DWORD 值
设置此值为十进制最低 32768
该值等待时间将是 30 秒。
重启windows系统。
本项的默认值:5000(十进制)

关闭注册表编辑器, 重启windows系统。
分享到:
评论

相关推荐

    Wincc服务器及客户端的设置.pdf

    wide update C_<ComputerName>_AlarmSound Singed 16-Bit Value Computer-local update 如果我们需要使用声音报警,那么我们就还需要添加组Horn并在其下面添加如下变 量,如果我们需要在客户端使用声音报警确认,...

    DB2常用命令,命令集

    GRANT CREATETAB,CONNECT ON DATABASE TO USER FUJIE; grant select, update, delete on table employee to user john with grant option 一,实例 产生 db2icrt -a AuthType(SERVER,CLIENT,SERVER_ENCRYPT) -p ...

    fix-hostname:确保 Mac 的 LocalHostName 和 ComputerName 匹配

    为了解决这个问题,我将“ComputerName”设置为与我想要的“LocalHostName”相同,然后使用此脚本确保它们相同。 有关这些名称的更多信息,请参阅: : 安装和设置(选项 1) 将fix-hostname.sh安装到诸如/usr/...

    IIS6.0 IIS,互联网信息服务

    最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在普遍使用的Windows XP Home版本上并没有IIS。 添加和运行准备  一、IIS的添加 请进入“控制...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    138/UDP--NetBIOS数据报,NetBIOS数据报是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它用于网络登录和浏览。 139/TCP--NetBIOS会话服务,NetBIOS会话服务是TCP/IP上的NetBIOS(NetBT)协议族的一部分,它用于服务器...

    NET命令指令集-如何在windows下使用net命令行

    <24>tcp/ip netbios helper(TCP/IP NETBIOS 辅助工具) <25>ups (26)workstation(工作站) <27>messenger(信使) <28>dhcp client <29>eventlog 以下这些SERVICE只能在NT SERVER上使用 << 1>> )file server ...

    DELPHI网络聊天

    //端口为:8888,可以自己定义,但必须与LocalPort相一致。 if ListBox1.Items[ListBox1.ItemIndex]=ComputerName then Edit1.Text:=ComputerName+'自言自语道:'+Edit1.Text //如果和自己对话. Else Edit1.Text:=...

    局域网地址扫描工具,IP,MAC,SHARE,NETBIOS,COMPUTERNAME

    一个简单小巧的IP地址扫描工具,分析和记录办公网络中的IP地址和MAC地址,共享资源等东东!

    PowerShell中使用PrintManagement管理打印机示例

    Windows 8.1和Windows Server 2012 R2引入了一个组件:“PrintManagement”,它包含了所有用来管理本地和远程机器打印机的命令。 下面的例子演示安装打印机驱动和打印机端口,先安装一个打印机,分享它,并设置一些...

    Hammer:Hello World的性能基准比较(C#与本机)

    简单的Http Server实现比较 ... start wcctl.exe -t client.ubr -f settings.ubr -s %COMPUTERNAME% -v 30 -c 4 -o output.xml -x 初创客户 在每台客户端计算机上运行 wcclient.exe 参考 HTTP S

    svn客户服务端下载安装文件及说明

    svn客户端,服务端下载安装文件及说明和相关参考链接

    EurekaLog_7.5.0.0_Enterprise

    34)..Changed: EurekaLog 7 now can be installed over EurekaLog 6 automatically, with no additional actions/tools EurekaLog 7.4 (7.4.0.0), 26-January-2016 1)....Fixed: Performance issue in DLL exports...

    python监控nginx端口和进程状态

    本文实例为大家分享了python监控nginx端口和进程状态的具体代码,供大家参考,具体内容如下 #!/usr/local/bin/python # coding:utf-8 import psutil import sys import os # 获取主机名称 def hostname(): sys = ...

    php获取ip及网址的简单方法(必看)

    echo $benji_ip=gethostbyname($_ENV['COMPUTERNAME']);输出服务器的ip $fangwen_ip=$_SERVER[REMOTE_ADDR]; 输出访问者的外网ip 以上这篇php获取ip及网址的简单方法(必看)就是小编分享给大家的全部内容了,希望能...

    php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例

    $bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP echo "本机IP:",$bIp,"\n"; echo "本机主机名:",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函数可以根据局域网IP获取主机名 //默认网关...

    Linux 系统管理-网络及服务器配置

    Linux 系 统 管 理 linux网络及服务器配置 ...-t 显示tcp协议的连接 几个网络管理命令 route 显示或设置ip路由表 rlogin 远程登录 tcpdump 测试网络通信量 网络设置及访问方法 局域网设置:ip ,子网掩码和网关设置

    PSCCMClient:用于管理MEMCM客户端的PowerShell模块

    PowerShell模块着重于与Microsoft Endpoint Manager配置管理器(MEMCM)客户端的交互。 一般主题是提供“按预期工作”的功能,因为它们尽可能接受管道,例如以下示例,以及计算机名,CimSessions或PSSessions的数组...

    NetworkModule.zip_通讯编程_Visual_Basic_

    module to work with network. ComputerName

    Windows Server 2008 R2 服务器常用命令小结

    工作组:Netdom RenameComputer %ComputerName% /NewName:08R2ServerCore 域环境中:Netdom RenameComputer %ComputerName% /Newname:08R2ServerCore /UserD:Administrator /PasswordD:P@ssw0rd 2.设置计算机IP地址 ...

    Win2008 R2下Server Core常用命令小结

    1.修改计算机名称 工作组:Netdom RenameComputer %ComputerName% /NewName:08R2ServerCore 域环境中:Netdom RenameComputer %ComputerName% /Newname:08R2ServerCore /UserD:Administrator /PasswordD:P@ssw0rd 2....

Global site tag (gtag.js) - Google Analytics