最近遇到一个问题,nginx+php+mysql。由于网站用户比较多,会经常有一些连接数据库的操作、所以用了pdo长连接。
$db = new PDO ( 'mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname='DB_NAME';charset=UTF8', DB_USER, DB_PASSWORD, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT=>true) )
retuen $GLOBALS['_db'] = $db;
这样一般情况是不会出现问题,但是网站会时不时的挂掉,需要重启nginx的fpm服务,才可正常运转。
老大估计是这个数据库连接不稳定。让我去找下连接池,或者$GLOBAL的局限性,找一个更稳定的连接方法,解决这个问题。
真心不会阿……求大神赐教!
$db = new PDO ( 'mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname='DB_NAME';charset=UTF8', DB_USER, DB_PASSWORD, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_PERSISTENT=>true) )
retuen $GLOBALS['_db'] = $db;
这样一般情况是不会出现问题,但是网站会时不时的挂掉,需要重启nginx的fpm服务,才可正常运转。
老大估计是这个数据库连接不稳定。让我去找下连接池,或者$GLOBAL的局限性,找一个更稳定的连接方法,解决这个问题。
真心不会阿……求大神赐教!
php 的 mysql 函数只提供基本数据库操作,并无连接池概念2、长连接资源从空闲到再次复用有一个时间间隔,当数据库连接请求的密度小于此间隔时,空闲的长连接资源不会被利用。从而造成大量资源被浪费,而数据库会因连接数过多而瘫痪3、从你的描述上看,并不能一定认为是数据库的原因