我们使用以下语法测试与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上。
提前致谢。
答案 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 = 28800
和interactive_timeout = 28800
更改为您想要的值。
否则你需要从脚本本身开始。
另外,check this link,它可能对您有帮助。
答案 2 :(得分:0)
如果从php-fpm运行代码,请尝试使用持久的mysql连接。这有助于我们自发的mysqli:real_connect超时。