您好,欢迎访问一九零五行业门户网

The driver was unable to create a connection due to an inabi_MySQL

在windows上与mysql服务器的连接失败(大数据量)发生的异常:
the driver was unable to create a connection due to an inability to establish the client portion of a socket.
this is usually caused by a limit on the number of sockets imposed by the operating system. this limit is usually configurable.
for unix-based platforms, see the manual page for the 'ulimit' command. kernel or system reconfiguration may also be required.
for windows-based platforms, see microsoft knowledge base article 196271 (q196271).
原因与解决方法:
1.操作系统对半连接数的限制。
这个可以使用迅雷菜单中的工具进行修改,或者使用tcpz软件来修改,其他的如:xp优化工具也有这个功能。
2.经过以上的修改还是发生异常
这个从mysql的官方帮助文档中,有如下:
当你在具有很多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秒)。
·        退出注册表编辑器。
·        重新引导机器。
注释:撤销上述设置十分简单,就像删除你创建的注册表一样。
经过以上的修改,ok!
呵呵,上面的问题主要还是连接问题,也可以用批量数据插入或者使用连接池
其它类似信息

推荐信息