ThinkPHP下PDO連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)出現(xiàn)“PDO->__construct(‘mysql:host=localhost…’”(SQLSTATE[HY000] [2002])

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

前幾天有個(gè)客戶說(shuō)他裝的ThinkPHP框架的站點(diǎn),過(guò)一段時(shí)間就崩了~~出現(xiàn)一系列的錯(cuò)誤,先出現(xiàn)的是(SQLSTATE[HY000] [2002])

過(guò)一點(diǎn)時(shí)間又出現(xiàn)“PDO->__construct(‘mysql:host=localhost…’” 如下圖

關(guān)于SQLSTATE[HY000] [2002]? ?ThinkPHP或者mysql出現(xiàn)“SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine”的解決辦法

出現(xiàn)SQLSTATE[HY000] [2002] ,這問(wèn)題也不一定是單一的問(wèn)題,來(lái)分析一下;

PDO連接數(shù)據(jù)庫(kù)報(bào)錯(cuò):“SQLSTATE[HY000] [2002] No such file or directory”。

出現(xiàn)這個(gè)問(wèn)題的原因是PDO無(wú)法找到mysql.sock或者mysqld.sock

PDO連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決方法1:

找到相應(yīng)的.sock文件,并設(shè)置php.ini文件中的pdo_mysql.default_socket的值為.sock文件的路徑。

pdo_mysql.default_socket= /tmp/mysqld.sock

然后重啟Apache,或者nginx下重啟php-fpm即可。

PDO連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決方法2:(我是用這種方法解決,簡(jiǎn)單省力)

將PDO連接中的dsn的host由“l(fā)ocalhost”改為“127.0.0.1”即可

解惑:WordPress在數(shù)據(jù)庫(kù)連接使用127.0.0.1與localhost對(duì)數(shù)據(jù)庫(kù)連接速度的影響

延伸閱讀:用localhost連接MySQL和127.0.0.1有什么區(qū)別呢?

在我們印象中這兩個(gè)都可以訪問(wèn)到本地的服務(wù),但是本質(zhì)上有什么區(qū)別的?

host=127.0.0.1,使用 TCP連接,mysql server會(huì)認(rèn)為這個(gè)連接來(lái)自127.0.0.1這個(gè)IP或者localhost.localdomin這個(gè)域名。

host=localhost,不使用TCP連接,它使用Unix socket連接mysql服務(wù)

以上是這兩種host連接區(qū)別的簡(jiǎn)單總結(jié),知道了這個(gè)區(qū)別,當(dāng)php用localhost去連接mysql的時(shí)候,它該用哪個(gè)socket呢?大家都知道m(xù)ysql服務(wù)啟動(dòng)后它的進(jìn)程里有一個(gè)--socket=/var/lib/mysql/mysql.sock的參數(shù)(大家的地址和我的可能會(huì)不相同,這個(gè)可以在mysq.cnf中進(jìn)行設(shè)置),其中這個(gè)mysql.sock就是要用到的socket,我們只要把這個(gè)完整地址告訴php就可以,告訴的方式就是修改php.ini

pdo_mysql.default_socket=? 這項(xiàng)是否有配置或者配置是否正確

設(shè)置好以后重啟php-fpm就大功告成了。

問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部?jī)?nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長(zhǎng)并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » ThinkPHP下PDO連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)出現(xiàn)“PDO->__construct(‘mysql:host=localhost…’”(SQLSTATE[HY000] [2002])

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開(kāi)發(fā)與維護(hù);網(wǎng)站開(kāi)發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情