laravel數(shù)據(jù)庫(kù)連接錯(cuò)誤:驅(qū)動(dòng)程序缺失導(dǎo)致連接失敗
在laravel開發(fā)中,”could not find driver”錯(cuò)誤提示是一個(gè)常見問題,即使數(shù)據(jù)庫(kù)配置正確且遷移完成,也可能出現(xiàn)。本文針對(duì)Laravel 5.8.38、php 7.4.3和mysql 8.0.21版本下的此類問題提供解決方案。
問題描述:開發(fā)者已驗(yàn)證MySQL數(shù)據(jù)庫(kù)配置無誤,數(shù)據(jù)遷移也已完成,但仍然遇到“could not find driver”錯(cuò)誤,導(dǎo)致無法從my_admin表查詢數(shù)據(jù)。
已知信息:php -m命令顯示已安裝mysqli和pdo_mysql模塊,這兩個(gè)模塊都與MySQL數(shù)據(jù)庫(kù)連接相關(guān)。然而,這并不能保證這些模塊在當(dāng)前運(yùn)行環(huán)境中被正確加載。php -m僅列出已編譯的模塊,而非當(dāng)前已啟用的模塊。
解決方案:
關(guān)鍵在于確認(rèn)MySQL驅(qū)動(dòng)程序是否已正確啟用。推薦使用php -i | grep mysqlnd命令進(jìn)行排查。mysqlnd (MySQL Native Driver)是PHP的MySQL驅(qū)動(dòng)程序。如果該命令沒有返回任何與mysqlnd相關(guān)的信息,則表示驅(qū)動(dòng)程序未啟用。
解決方法:檢查PHP配置文件(通常是php.ini),確保extension=mysqlnd或extension=mysqli (取決于你的配置) 行存在且未被注釋。 保存更改后,重啟PHP服務(wù)使配置生效。 這將確保Laravel能夠找到并使用正確的MySQL驅(qū)動(dòng)程序。
注意:本文提供的建議并非解決“could not find driver”問題的唯一方法,但它是解決此類問題最直接有效的方法。 其他環(huán)境配置問題也可能導(dǎo)致此錯(cuò)誤,但只有確保MySQL驅(qū)動(dòng)程序正確啟用,才能從根本上解決此問題。