mysqlは問題の位置決めと修復プロセスの共有に接続できません

2868 ワード

位置決めの結果は次のとおりです.
クライアント環境:windows server 2003 r 2 standard edition sp 2 mysql Ver 14.12 Distrib 5.0.18,for Win 32(ia 32)apache 2.2瑞星webshieldクライアント1.08
問題が再現されました.最適化できますが、webshieldによるものとは特定できません.
構築環境:windows server 2003 r 2 standard edition sp 2 mysql 5.0.18 for win 32 apache-2..21-win 32-x 86-no_sslphp-5.2.17-win 32-vc 6-x 86瑞星23.00.520.25
環境構築中に発生したいくつかの問題:
apacheとphpをダウンロードするときは、apacheとphpのマッチングの問題に注意してください.
a)PHP5.3 VC 6とVC 9のバージョンがあります.VC 6のバージョンを選択してください.理由は次のとおりです.
i.VC 6バージョンはVisual Studio 6コンパイラでコンパイルされています.PHPがApacheで架設されている場合は、VC 6バージョンを選択します.ii. VC 9バージョンはVisual Studio 2008コンパイラでコンパイルされています.PHPがIISで架設されている場合は、VC 9バージョンを選択します.
b)PHP5.3のThread SafeとNon Thread Safeバージョン.Apache no_ssl版はphp Thread Safe版と組み合わせるべきです.Non Thread Safeと組み合わせると、apache起動エラー:「Apache is running a threaded MPM,but your PHP Modle is not compiled to be threadsafe.You need to recompile PHP.」
i.Thread Safeはスレッドセキュリティであり、実行時にスレッド(Thread)セキュリティチェックを行い、新しいスレッドを起動するCGI実行方式でシステムリソースが消費されることを防止する.ISAPIの実行方式はDLLダイナミックライブラリの形式で使用され、ユーザーに要求された後に実行することができ、1つのユーザー要求を処理した後にすぐに消えることはないので、スレッドセキュリティチェックを行う必要があり、プログラムの実行効率を高めるため、ISAPIでPHPを実行する場合はThread Safeバージョンを選択することを提案する.ii. Non Thread Safeは非スレッドセキュリティであり、実行時にスレッド(Thread)セキュリティチェックを行わない.FastCGI実行方式は単一スレッドで実行するため、スレッドのセキュリティチェックを行う必要がなく、スレッドセキュリティチェックの保護を除いて実行効率を向上させることができるので、FastCGIでPHPを実行する場合はNon Thread Safeバージョンを選択することをお勧めします.apacheのWebサイトおよびPHPの適切な構成に注意してください.特に注意プロファイルにはLoadModule,PHPIniDir,DocumentRoot,ServerRoot,Directory,Directory Index,AddTypeアプリケーション/x-httpd-phpなどの構成がインストールされてmysql後(管理者アカウントパスワード:admin/admin)、PHPコードでadminを使用してデータベースに接続できませんでした.
問題の再現:
PHP最長実行時間制限.
a)phpの最長実行時間はデフォルトで30秒で、30秒を超えると実行が中止され、mysqlとの接続も切断されます.b)この値を大きくしてphpディレクトリの下のphpを修正しようとする.iniプロファイル、max_execution_time=30をmax_に変更execution_time = 300.0に設定すると、PHPの最大実行時間を制限しないことを示します.c)最長実行時間制限によるmysql接続の失敗を回避する.
ウェブサイトのトラフィックが大きいためmysqlが接続できません.
a)phpスクリプトを作成してmysqlをテストしたところ、mysqlに頻繁な接続/切断操作を行うと、mysqlはすぐに接続できない問題が発生することが分かった(エラーコード:10048).すべての接続を中止すると、2分後にmysqlは正常に戻ります.接続を停止しないとmysqlは接続できません.b)windowsレジストリ項目TcpTimedWaitDelayの値を30(デフォルトは240秒)に変更し、この項目の値を減らすことでTCP/IPが閉じた接続をより速く解放し、新しい接続により多くのリソースを提供することができます.ii. WindowsレジストリのMaxUserPortを53768に変更します(この値は、システムから使用可能なユーザーポートを要求するときに使用される最大ポート数、TCP/IPで指定できる最高ポート番号、デフォルト値は5000です).より多くの要求を処理します.
c)レジストリ項目を修正した後のテストでは、mysqlの状況が大幅に改善された:mysql接続エラーが発生した場合は大幅に減少し、エラー後の自己回復能力が大幅に向上した.
以上の2つのケースについて,webshield 1.08をインストールした場合と,webshield 1.08をインストールしていない場合をそれぞれテストしたが,両者のテスト結果は同じであった.
最適化:
max_execution_timeの変更:phpディレクトリの下のphpを開きます.iniファイル、max_を見つけますexecution_time=30行で、30を希望する数字に変更します.TcpTimedWaitDelayとMaxUserPortの修正:
 
  
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e
"MaxUserPort"=dword:00008000