PHP - mysql连接超时延迟

时间:2017-03-15 10:00:12

标签: php mysql iis mysqli

我们使用以下语法测试与mysql数据库的php连接:

<?php
$link = mysqli_connect("10.0.0.6:3306", "wordpress-user", "Passw0rd", "wordpress");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

问题在于成功时响应是立即的,但是,在失败时,响应总是22秒。是否可以减少22秒以更快地响应连接失败?

我们已经将mysql.connect_timeout减少到5秒,但是这没有效果,因为超时/响应仍然是21秒。有什么想法吗?

PHP服务器托管在IIS上。

提前致谢。

3 个答案:

答案 0 :(得分:0)

有连接选项MYSQLI_OPT_CONNECT_TIMEOUT

$my = mysqli_init();
$my->options(MYSQLI_OPT_CONNECT_TIMEOUT, 1);
$my->real_connect('non-existent-ip',"wordpress-user", "Passw0rd", "wordpress");

将使其超时1秒

答案 1 :(得分:0)

如果您有权访问服务器文件,则可以编辑my.cnf(MySQL配置文件),并将行wait_timeout = 28800interactive_timeout = 28800更改为您想要的值。

否则你需要从脚本本身开始。

另外,check this link,它可能对您有帮助。

答案 2 :(得分:0)

如果从php-fpm运行代码,请尝试使用持久的mysql连接。这有助于我们自发的mysqli:real_connect超时。