MySQL 最大连接数问题

版权声明:本文为博主原创文章,转载请注明出处。

前言

有些问题,在开发过程中不会遇到;但当要在生产环境中进行部署的时候便会暴露出来。

1
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1040, 'Too many connections')

为什么会引发这个问题?因为生产环境的 CPU 核心数太多了。

业务进程的数量一般为 CPU 数量的倍数,而数据库进程最大打开文件数一般为常量(记得默认好像是100+),那么假设一个 CPU 启动两个进程,两个进程各建立四个连接,很容易就会超过这个数量而导致异常。

Read More

PHP7 兼容旧 MySQL Api

版权声明:本文为博主原创文章,转载请注明出处。

前言

这几天折腾网络安全的玩意,在搭建安全测试平台的过程中出现了点小问题。

安全测试平台使用的php版本是5.x,但我在服务器上安装的是7.x,7.x的php废除了对mysql的api,添加了一套新的api,mysqli。

虽然可以去安装php5.x来解决这个问题,不过常用的5.6好像也不支持了,那就不折腾了。

考虑到各种因素,于是乎用mysqli的api修改一下,做了个mysql的api兼容层。

Read More