小编Nen*_*nov的帖子

PHP-MySQLi连接随机失败,并显示"无法分配请求的地址"

从大约2周开始,我正在处理LAMP堆栈中最奇怪的问题之一.与MySQL服务器的长连接短连接失败,并显示错误消息:

Warning:  mysqli::real_connect(): (HY000/2002): Cannot assign requested address in ..
Run Code Online (Sandbox Code Playgroud)

MySQL是在不同的"盒子"上,托管在Rackspace Cloud今天我们将它的版本降级为

Ver 14.14 Distrib 5.1.42, for debian-linux-gnu (x86_64).
Run Code Online (Sandbox Code Playgroud)

根据它的状态变量,数据库服务器非常忙于处理每秒查询平均值:5327.957.

MySQL处于log-warnings = 9但没有记录连接拒绝的争用.站点和齿轮工作者脚本都会因为错误而失败,假设概率为1%.没有服务器负载似乎不是我们监控的因素.(CPU负载,IO负载或MySQL负载)最大数据库连接数(max_connections)设置为200但我们从未处理过与数据库的100多个同时连接

它有和没有防火墙软件.

我怀疑TCP网络问题而不是PHP/MySQL配置问题.

任何人都可以告诉我如何找到它?

更新:

连接代码是:

$this->_mysqli = mysqli_init(); 
$this->_mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 120); 
$this->_mysqli->real_connect($dbHost,$dbUserName, $dbPassword, $dbName); 

if (!is_null($this->_mysqli->connect_error)) {
    $ping = $this->_mysqli->ping(); 

    if(!$ping){
        $error = 'HOST: {'.$dbHost.'};MESSAGE: '. $this->_mysqli->connect_error ."\n"; 
        DataStoreException::raiseHostUnreachable($error);
    }
} 
Run Code Online (Sandbox Code Playgroud)

php mysql debian

5
推荐指数
3
解决办法
3万
查看次数

标签 统计

debian ×1

mysql ×1

php ×1