检查MySQL服务器是否能够接受连接

时间:2010-11-18 11:20:14

标签: php mysql connection

从PHP检查连接MySQL服务器是否成功的最佳方法是什么?我已经看到一些解决方案,首先尝试打开套接字连接(使用fsockopen)并连接到MySQL(通过你使用的任何扩展)只有套接字连接成功。我不太确定这个,因为你每次都必须建立两个连接,这对服务器造成了太大的影响吗?

我的问题是,如果我的MySQL服务器因任何原因锁定或停止工作,网页就会停止工作(它会加载很长时间,然后通常会返回504网关超时错误)。如果MySQL不可用,我想显示用户友好的错误消息。如果它已经在苦苦挣扎,那么这也有望避免MySQL受到更严重的打击,因为在客户端重新启动之前,新客户端将无法连接到它。

如果相关,我正在使用MySQLi扩展程序。

2 个答案:

答案 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();
?>

来自http://www.php.net/manual/en/mysqli.connect.php