相信很多新手朋友都遇到過WordPress提示“建立數(shù)據(jù)庫連接時(shí)出錯(cuò)”這個(gè)錯(cuò)誤,英文為“Error establishing a database connection”:
今天我們就來了解一下這個(gè)錯(cuò)誤一般是什么原因?qū)е拢约叭绾芜M(jìn)行修復(fù)。
一、“建立數(shù)據(jù)庫連接時(shí)出錯(cuò) ”是什么意思?
首先,我們需要了解WP是如何顯示網(wǎng)站的,這將讓我們清楚地了解為什么這個(gè)錯(cuò)誤數(shù)據(jù)庫是如此具有破壞性。WordPress系統(tǒng)站點(diǎn)的所有數(shù)據(jù)都由MySQL(或其他分支)數(shù)據(jù)庫存儲(chǔ),然后使用PHP語言來檢索和存儲(chǔ)來自該數(shù)據(jù)庫的信息。
通常,無論何時(shí)加載您網(wǎng)站的任何頁面,它都是即時(shí)創(chuàng)建的。 需要使用PHP代碼 訪問MySQL數(shù)據(jù)庫以檢索構(gòu)建頁面所需的所有數(shù)據(jù)。比如通過不同的PHP查詢函數(shù)獲取文章標(biāo)題、作者姓名、發(fā)布日期等。
“建立數(shù)據(jù)庫錯(cuò)誤時(shí)出錯(cuò)”意味著由于某種原因,您的站點(diǎn)PHP代碼無法與MySQL數(shù)據(jù)庫連接以獲取顯示該頁面所需的數(shù)據(jù)。
二、數(shù)據(jù)庫連接出錯(cuò)的原因和處理方案
數(shù)據(jù)庫連接出錯(cuò),一般是以下原因之一造成的:
1、數(shù)據(jù)庫連接信息錯(cuò)誤
熟悉WordPress的朋友應(yīng)該知道,在WordPress根目錄下有一個(gè)名為 wp-config.php 的文件,里面包含了數(shù)據(jù)庫連接信息:
所以,當(dāng)我們遇到“建立數(shù)據(jù)庫連接時(shí)出錯(cuò)”時(shí),我們應(yīng)該首先檢查這個(gè)wp-config.php文件的數(shù)據(jù)庫連接信息是否正確,尤其是當(dāng)我們更換主機(jī)或數(shù)據(jù)庫的時(shí)候。如果不正確,就根據(jù)實(shí)際情況去修正。
如果你不清楚新主機(jī)的數(shù)據(jù)庫連接信息,建議聯(lián)系主機(jī)商咨詢。
2、MySQL數(shù)據(jù)庫停掉了
由于某些原因,可能會(huì)導(dǎo)致MySQL數(shù)據(jù)庫進(jìn)程停掉,比如內(nèi)存不夠、PHP查詢語句錯(cuò)誤等,這個(gè)時(shí)候, 如果已經(jīng)確認(rèn)wp-config.php的數(shù)據(jù)庫連接信息是正確的,那我們就應(yīng)該去檢查下MySQL是否停掉了。如果是的,那就啟動(dòng)看下是否可以恢復(fù)。
導(dǎo)致MySQL停掉的原因可能很多,也比較復(fù)雜,在此我們不進(jìn)行討論。如果MySQL經(jīng)常無故停掉,建議找專業(yè)的運(yùn)維人員去幫忙處理。
3、數(shù)據(jù)庫表損壞
如果已經(jīng)確認(rèn)wp-config.php的數(shù)據(jù)庫連接信息是正確,并且MySQl數(shù)據(jù)庫運(yùn)行正常,那我們就應(yīng)該去檢查數(shù)據(jù)庫是否有數(shù)據(jù)表損壞了。
由于插件、主題的不斷變化,或者在WordPress網(wǎng)站中安裝了安裝編碼錯(cuò)誤或不良的插件,或者文章數(shù)據(jù)量很大,這些都有可能導(dǎo)致數(shù)據(jù)庫損壞。
要查找數(shù)據(jù)庫哪個(gè)表是否損壞,一般我們可以登錄phpmyadmin等可視化數(shù)據(jù)庫管理界面去查看,如果看到某個(gè)表的大小明顯和實(shí)際數(shù)據(jù)不符,或者有提示“正在使用中”(貌似是這句話,不是記得很清楚了),那就可以先下載備份一下數(shù)據(jù)庫,然后選中表,使用phpMyAdmin等內(nèi)置的修復(fù)功能去修復(fù)。
此外,我們可以開啟WordPress內(nèi)置的數(shù)據(jù)庫修復(fù)功能進(jìn)行修復(fù),這個(gè)修復(fù)功能默認(rèn)是禁用的,我們需要在 wp-config.php 文件的第二行后添加下面的代碼去開啟:
define( 'WP_ALLOW_REPAIR', true );
添加好以后,訪問你的網(wǎng)站任何一個(gè)頁面,WordPress就會(huì)自動(dòng)嘗試去修復(fù)數(shù)據(jù)庫。請(qǐng)注意:任何人都可以訪問到數(shù)據(jù)庫修復(fù)頁面,所以一旦你執(zhí)行完修復(fù)了以后,請(qǐng)務(wù)必記得刪除上面添加的代碼。
4、某些PHP文件損壞
如果通過上面的步驟去檢查操作了,還是無法恢復(fù)正常,那我們就需要去考慮是否有PHP文件損壞了。因?yàn)镻HP文件的損壞,會(huì)導(dǎo)致查詢功能的錯(cuò)誤,從而導(dǎo)致數(shù)據(jù)庫出錯(cuò)。
至于到底哪些PHP文件損壞,這個(gè)是很難去找的,我們只能不斷去嘗試。大致的思路如下:
備份網(wǎng)站的所有文件,很重要。
通過FTP等可以管理文件的界面,去刪除 wp-content/themes/ 目錄下當(dāng)前使用的主題,然后看下是否可以恢復(fù)。注意必須保留一個(gè)WP默認(rèn)自帶的主題,然后嘗試訪問 /wp-admin/ 網(wǎng)址。
刪除 wp-content/plugins/ 目錄下的插件,看下是否可以恢復(fù)。
如果還不行,刪除 /wp-content/ 和 wp-config.php 以外的文件,重新到官方下載版本一致的WordPress原版,上傳覆蓋。
整個(gè)操作過程可能有些復(fù)雜,如果你不會(huì),請(qǐng)務(wù)必找專業(yè)的運(yùn)維人員操作,并且請(qǐng)務(wù)必做好備份。





