从PHP检查连接MySQL服务器是否成功的最佳方法是什么?我已经看到一些解决方案,首先尝试打开套接字连接(使用fsockopen
)并连接到MySQL(通过你使用的任何扩展)只有套接字连接成功。我不太确定这个,因为你每次都必须建立两个连接,这对服务器造成了太大的影响吗?
我的问题是,如果我的MySQL服务器因任何原因锁定或停止工作,网页就会停止工作(它会加载很长时间,然后通常会返回504网关超时错误)。如果MySQL不可用,我想显示用户友好的错误消息。如果它已经在苦苦挣扎,那么这也有望避免MySQL受到更严重的打击,因为在客户端重新启动之前,新客户端将无法连接到它。
如果相关,我正在使用MySQLi扩展程序。
答案 0 :(得分:2)
您需要在mysqli :: options中指定MYSQLI_OPT_CONNECT_TIMEOUT
details
答案 1 :(得分:0)
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
/*
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
*/
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
/*
* Use this instead of $connect_error if you need to ensure
* compatibility with PHP versions prior to 5.2.9 and 5.3.0.
*/
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "\n";
$mysqli->close();
?>