欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql 無法連接問題的定位和修復(fù)過程分享

 更新時間:2013年03月31日 13:52:04   作者:  
開發(fā)的一款網(wǎng)站防護(hù)產(chǎn)品中出現(xiàn)了一個客戶端上安裝后Mysql每隔一段時間就出現(xiàn)問題,這個問題是客戶反饋的,所以需要去復(fù)現(xiàn)和定位

定位結(jié)果如下:

客戶環(huán)境:
windows server 2003 r2 standard edition sp2
mysql Ver 14.12 Distrib 5.0.18, for Win32 (ia32)
apache 2.2
瑞星
webshield客戶端1.08

問題已復(fù)現(xiàn)??梢詢?yōu)化,無法確定是webshield導(dǎo)致的。

搭建環(huán)境:
windows server 2003 r2 standard edition sp2
mysql 5.0.18 for win32
apache-2.2.21-win32-x86-no_ssl
php-5.2.17-win32-vc6-x86
瑞星23.00.50.25

搭建環(huán)境過程中遇到的幾個問題:

在下載apache與php時,請注意apache與php匹配問題。

a)PHP5.3有VC6與VC9版本,應(yīng)選擇VC6版本。原因如下:

i. VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設(shè)的,那你就選擇VC6版本。
ii. VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設(shè)的,那你就選擇VC9版本。

b)PHP5.3的Thread Safe和Non Thread Safe版本。Apache no_ssl版應(yīng)與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是線程安全,執(zhí)行時會進(jìn)行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執(zhí)行方式而耗盡系統(tǒng)資源。ISAPI執(zhí)行方式是以DLL動態(tài)庫的形式使用,可以在被用戶請求后執(zhí)行,在處理完一個用戶請求后不會馬上消失,所以需要進(jìn)行線程安全檢查,這樣來提高程序的執(zhí)行效率,所以如果是以ISAPI來執(zhí)行PHP,建議選擇Thread Safe版本;
ii. Non Thread Safe是非線程安全,在執(zhí)行時不進(jìn)行線程(Thread)安全檢查。FastCGI執(zhí)行方式是以單一線程來執(zhí)行操作,所以不需要進(jìn)行線程的安全檢查,除去線程安全檢查的防護(hù)反而可以提高執(zhí)行效率,所以,如果是以FastCGI來執(zhí)行PHP,建議選擇Non Thread Safe版本。
注意apache對網(wǎng)站及PHP的正確配置。特別注意配置文件中LoadModule, PHPIniDir,DocumentRoot,ServerRoot,Directory,DirectoryIndex,AddType application/x-httpd-php等項的配置
安裝后 mysql 后(管理員賬號密碼:admin/admin),在PHP代碼中使用admin連接數(shù)據(jù)庫失敗,cmd執(zhí)行mysql –u root -p啟用root用root可正常連接數(shù)據(jù)庫。

問題復(fù)現(xiàn):

PHP最長執(zhí)行時間限制。

a)php最長執(zhí)行時間默認(rèn)為30秒,超過30秒后被中止執(zhí)行,與mysql的連接也被斷開。
b)嘗試增大此值,修改php目錄下的php.ini配置文件,將max_execution_time = 30 改為max_execution_time = 300。如果設(shè)為0,表示不限制PHP最大執(zhí)行時間。
c)避免了因最長執(zhí)行時間限制而導(dǎo)致mysql連接失敗。

網(wǎng)站流量大導(dǎo)致mysql無法連接。

a)編寫php腳本對mysql進(jìn)行測試,發(fā)現(xiàn)當(dāng)對mysql進(jìn)行頻繁的連接/斷開操作時,mysql很快出現(xiàn)無法連接問題(錯誤代碼:10048)。當(dāng)中止所有連接,2分鐘后mysql又恢復(fù)正常。若不停止連接,mysql一直無法連接。
b)嘗試從兩方面優(yōu)化:
i. 修改windows注冊表項TcpTimedWaitDelay值為30(默認(rèn)為240秒),減少此條目的值允許 TCP/IP 更快地釋放已關(guān)閉的連接, 為新連接提供更多資源。
ii. 修改windows注冊表項MaxUserPort為53768 (該值表示從系統(tǒng)請求任何可用用戶端口時所用最大端口數(shù),TCP/IP 可指定的最高端口號,默認(rèn)值為5000)以處理更多的請求。

c)修改完注冊表項后測試,mysql情況大有改善:mysql連接錯誤出現(xiàn)的情況大有減少,出錯后自我恢復(fù)的能力大有提高。

針對以上兩種情況,分別對安裝了webshield 1.08與未安裝webshield 1.08進(jìn)行了測試,兩者測試結(jié)果一樣。

優(yōu)化:

max_execution_time的修改:
打開php目錄下的php.ini文件,找到max_execution_time = 30 這行,將30修改為想要的數(shù)字。
TcpTimedWaitDelay與MaxUserPort的修改:

復(fù)制代碼 代碼如下:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e
"MaxUserPort"=dword:00008000

相關(guān)文章

  • SQL查詢語句優(yōu)化的實(shí)用方法總結(jié)

    SQL查詢語句優(yōu)化的實(shí)用方法總結(jié)

    下面小編就為大家?guī)硪黄猄QL查詢語句優(yōu)化的實(shí)用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 詳解Mysql通訊協(xié)議

    詳解Mysql通訊協(xié)議

    這篇文章對Mysql的通訊協(xié)議做了詳細(xì)介紹和說明,希望我們整理的內(nèi)容對你有用,一起學(xué)習(xí)下吧。
    2017-12-12
  • MySQL更新存放JSON的字段、\“ 轉(zhuǎn)義成 “的問題描述

    MySQL更新存放JSON的字段、\“ 轉(zhuǎn)義成 “的問題描述

    本篇介紹在執(zhí)行MySQL線上變更時遇到的問題,表現(xiàn)為"更新JSON字段時,實(shí)際更新的值與SQL語句中的值不一致,JSON格式錯誤",本文給大家分享問題描述及解決方案,感興趣的朋友一起看看吧
    2022-12-12
  • MySQL獲取所有分類的前N條記錄

    MySQL獲取所有分類的前N條記錄

    本文給大家分享的是使用mysql實(shí)現(xiàn)獲取所有分類的前N條記錄的方法,本文給出了3個示例,有需要的小伙伴可以參考下。
    2015-04-04
  • MySQL延時復(fù)制庫方法詳解

    MySQL延時復(fù)制庫方法詳解

    我相信很多人都遭遇過MySQL主從復(fù)制延遲的問題,處理方案基本上就是你能搜索到的那些,那么我今天卻要說說如何讓MySQL延遲復(fù)制。對于剛組建的團(tuán)隊來說,這可能會救了你的項目
    2020-02-02
  • MySQL ALTER命令知識點(diǎn)匯總

    MySQL ALTER命令知識點(diǎn)匯總

    在本文中我們給大家整理了關(guān)于MySQL ALTER命令的用法以及相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-02-02
  • SQL通用語法以及分類圖文詳解

    SQL通用語法以及分類圖文詳解

    本書從初學(xué)者的角度出發(fā),由淺入深,循序漸進(jìn)地介紹了SQL通用語法的相關(guān)知識,下面這篇文章主要給大家介紹了關(guān)于SQL通用語法以及分類的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • MySQL數(shù)據(jù)庫之約束簡析

    MySQL數(shù)據(jù)庫之約束簡析

    這篇文章主要介紹了MySQL數(shù)據(jù)庫之約束簡析,約束是作用于表中字段上的規(guī)則,用于限制存儲在表中的數(shù)據(jù),保證數(shù)據(jù)庫中數(shù)據(jù)的正確、有效性和完整性,需要的朋友可以參考下
    2023-09-09
  • MySQL三大日志(binlog、redo?log和undo?log)圖文詳解

    MySQL三大日志(binlog、redo?log和undo?log)圖文詳解

    日志是MySQL數(shù)據(jù)庫的重要組成部分,記錄著數(shù)據(jù)庫運(yùn)行期間各種狀態(tài)信息,下面這篇文章主要給大家介紹了關(guān)于MySQL三大日志(binlog、redo?log和undo?log)的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • MySQL?count(*),count(id),count(1),count(字段)區(qū)別

    MySQL?count(*),count(id),count(1),count(字段)區(qū)別

    本文主要介紹了MySQL?count(*),count(id),count(1),count(字段)區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論