日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 修复错误连接_mysql 无法连接问题的定位和修复过程分享

發布時間:2023/12/15 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 修复错误连接_mysql 无法连接问题的定位和修复过程分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定位結果如下:

客戶環境:

windows server 2003 r2 standard edition sp2

mysql Ver 14.12 Distrib 5.0.18, for Win32 (ia32)

apache 2.2

瑞星

webshield客戶端1.08

問題已復現。可以優化,無法確定是webshield導致的。

搭建環境:

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

搭建環境過程中遇到的幾個問題:

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

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

i. VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。

ii. VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇VC9版本。

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動態庫的形式使用,可以在被用戶請求后執行,在處理完一個用戶請求后不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇Thread Safe版本;

ii. Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。

注意apache對網站及PHP的正確配置。特別注意配置文件中LoadModule, PHPIniDir,DocumentRoot,ServerRoot,Directory,DirectoryIndex,AddType application/x-httpd-php等項的配置

安裝后 mysql 后(管理員賬號密碼:admin/admin),在PHP代碼中使用admin連接數據庫失敗,cmd執行mysql –u root -p啟用root用root可正常連接數據庫。

問題復現:

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)嘗試從兩方面優化:

i. 修改windows注冊表項TcpTimedWaitDelay值為30(默認為240秒),減少此條目的值允許 TCP/IP 更快地釋放已關閉的連接, 為新連接提供更多資源。

ii. 修改windows注冊表項MaxUserPort為53768 (該值表示從系統請求任何可用用戶端口時所用最大端口數,TCP/IP 可指定的最高端口號,默認值為5000)以處理更多的請求。

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

針對以上兩種情況,分別對安裝了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

總結

以上是生活随笔為你收集整理的mysql 修复错误连接_mysql 无法连接问题的定位和修复过程分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。