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

你可能感兴趣的:(Mysql数据库连接驱动问题)