ホームページ >バックエンド開発 >PHPの問題 >php mysqlのタイムアウト設定方法

php mysqlのタイムアウト設定方法

藏色散人
藏色散人オリジナル
2020-07-23 09:42:443612ブラウズ

php mysqlのタイムアウト設定方法: まずMySQLのソースコードを確認し、次に「MYSQL_OPT_READ_TIMEOUT」と「MYSQL_OPT_WRITE_TIME」の実際の値を取得し、最後に「mysql_option」を直接呼び出します。

php mysqlのタイムアウト設定方法

PHP が mysql に接続するためのタイムアウトを設定する

PHP が mysql に接続するためのタイムアウトは分割できます。

连接超时
读超时
写超时

PHP には現在、mysql に接続するための 2 つの接続方法、libmysql および mysqlnd (推奨) があるためです。

まず、libmysql

libmysqlの基盤となるライブラリには、MYSQL_OPT_CONNECT_TIMEOUT、MYSQL_OPT_READ_TIMEOUT、MYSQL_OPT_WRITE_TIMEの設定項目と、関連するAPIが提供されています。

ソースコードの場所

mysql-VERSION/sql-common/client.c 3020行

MYSQL_OPT_CONNECT_TIMEOUTは直接設定できます。ただし、MYSQL_OPT_READ_TIMEOUT と MYSQL_OPT_WRITE_TIME は mysqli によってインポートされません。

したがって、MySQL のソース コードを確認し、MYSQL_OPT_READ_TIMEOUT と MYSQL_OPT_WRITE_TIME の実際の値を取得してから、mysql_option を直接呼び出す必要があります。ただし、mysql_pdo はハードコーディングされているため、MYSQL_OPT_READ_TIMEOUT および MYSQL_OPT_WRITE_TIME を設定する方法はありません。

ソースコードの場所:

mysql-VERSION/include/mysql.h 160 行

ただし、MYSQL_OPT_READ_TIMEOUT は mysql5.6 以前のバージョンにあります (オンラインでは 5.6 を使用しています)。このパラメータには以下の 3 つの制限があります。

只能在TCP/IP协议下工作
MySQL server版本必须大于5.1.2
只能在windows下生效。

2 番目は mysqlnd

libmysql と mysqlnd の場合、これらは mysql、mysqli、mysqlpdo の基礎となるライブラリです。これら 3 つの拡張機能は、したがって、これら 3 つのタイムアウトのサポートはコード レベルで同じです。

ただし、MYSQL_OPT_READ_TIMEOUT の場合、mysqlnd は php.ini レベルの複数の場所で構成されます

mysqlnd.net_read_timeout

この構成には長い時間がかかりますSQL を実行すると、「2006-MySQL Server が消えました」というエラーが報告されます。

このパラメータは、libmysql の MYSQL_OPT_READ_TIMEOUT に非常に似ています。ただし、パラメータ MYSQL_OPT_READ_TIMEOUT には、前の概要で説明した使用シナリオがあります。

MYSQL_OPT_CONNECT_TIMEOUT および MYSQL_OPT_WRITE_TIME は libmysql と同じです。

推奨: 「PHP チュートリアル

要するに

  • #mysqlnd を使用します

  • mysqlnd.net_read_time を設定します

以上がphp mysqlのタイムアウト設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。