代码之家  ›  专栏  ›  技术社区  ›  Jan Hančič

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

  •  2
  • Jan Hančič  · 技术社区  · 13 年前

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

    我的问题是,如果MySQL服务器由于任何原因锁定或停止工作,那么web页面就会停止工作(它会加载很长一段时间,然后通常会返回504网关超时错误)。如果MySQL不可用,我想显示一条用户友好的错误消息。如果MySQL已经陷入困境,这也有望避免它遭受更大的打击,因为新客户机在服务器恢复之前不会连接到它。

    我在用 MySQLi 如果相关的话,可以延期。

    2 回复  |  直到 13 年前
        1
  •  2
  •   ajreal    13 年前

    你需要的是 MYSQLI_OPT_CONNECT_TIMEOUT 在mysqli::options中指定 details

        2
  •  0
  •   Josh Andreas Rehm    12 年前
    <?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