Mysql数据库连接驱动问题

我在做天猫项目时,一小段时间频繁的连接数据库时。tomcat报空指针异常,找了很久才发现是数据库问题,数据库报错如下。

com.mysql.jdbc.CommunicationsException: 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打开注册表编辑器

2依次进入注册表

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

3鼠标点击在Parameters后,点击编辑菜单,新建值

值名称: MaxUserPort.

数据类型为: REG_DWORD

数据值为: 65534

修改完后,连接最大为65534个,默认5000.值就为5000 至65534

修改好退出,重启计算机就好了。

还要说明下,为了这个问题。我还把数据库驱动升级到了8.0.12。可是驱动升级完后,原先的连接方式也要改下。原先的连接为Class.forName("com.mysql.jdbc.Driver");, 现在要改成

Class.forName("com.mysql.cj.jdbc.Driver");这样才行。

url也要修改为如下

jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false

这样大功告成,折磨了将近一天的的问题终于好了,不易啊。

下面是修改微软连接个数的官方说明

https://support.microsoft.com/zh-cn/help/196271

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JDBC基础知识 一、采用JDBC访问数据库的基本步骤: A.载入JDBC驱动程序 B.定义连接URL ...
    java日记阅读 3,947评论 0 20
  • 这半年我都不曾像以前那么开心了,觉得跟人相处很累,太近了想保持距离,太远了又想靠近,一切都小心翼翼,每次都...
    忆梦的天阅读 553评论 0 0
  • 周围同学不喜欢不接地气的人,我极力想改变,于是成为两个极端。 一端是“上关风 下关花 苍山雪 洱海月”的独自站在寥...
    无敌欣阅读 450评论 0 1
  • 我认为做好玫琳凯需要三个核心圈,分别是①信念圈②心态圈③能力圈。三个圈彼此交融,相生互通,也各自为营。 信念,是人...
    ActorThinker阅读 316评论 0 0
  • 前言#### 映客这个App我是从2016年初的时候就开始写,但是中间经历的很多波折,同时我的空闲时间比较少,就导...
    摸着石头过河_崖边树阅读 1,041评论 0 3