windows10下使用Qt5.14.0連接MySQL5.7.28錯誤:QMYSQL driver not loaded的問題完美解決方案

最近操作系統換成windows10,在編寫QT訪問mysql的使用出現了一些問題,現在將問題以及解決方案總結記錄一下
 

 

Windows下使用qt連接mysql數據庫時,總是出現QSqlDatabase: QMYSQL driver not loaded的問題。

首先,比較麻煩的解決方案是重新編譯QT中mysql的驅動文件qsqlmysql.dll,還有一種簡單方法是把libmysql.dll複製到指定的目錄。

第二種解決方案是拷貝MySQL的lib下的libmysql.dll和libmysql.lib文件複製到C:\Qt\Qt5.14.0\5.14.0\mingw73_32\bin目錄下或者複製到項目的編譯的debug和release目錄。

注意:無論哪種方式都需要確保MySQL和Qt的位數一樣,都是32位的或都是64位的。

 

解決方案1:

手動編譯qt中的mysql驅動文件

  • 1、添加系統的環境變量

 

  • 2、修改C:\Qt\Qt5.14.0\5.14.0\Src\qtbase\src\plugins\sqldrivers\qtsqldrivers-config_p.h文件把mysql後的數字改爲1,改爲1標識使用,改爲-1標識忽略

 

  • 3、打開cmd命令行,進入sqldrivers目錄執行qmake編譯,注意指定mysql的include和lib

Cd C:\Qt\Qt5.14.0\5.14.0\Src\qtbase\src\plugins\sqldrivers

qmake -- MYSQL_INCDIR="C:/Program Files (x86)/MySQL/MySQL Server 5.7/include" MYSQL_LIBDIR="C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib"

 

 

  • 4、執行mingw32-make命令進行編譯

  • 5、執行mingw32-make install命令進行安裝

最後可以把將C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib/libmysql.dll  複製到 C:/Windows目錄下。爲了保險最好重新啓動一下windows操作系統

 

 

 

解決方案2:

把mysql中的dll文件複製到項目編譯好的目錄的debug或release中

我這裏安裝的是MySQL5.7.28在安裝的時候需要選擇安裝C++的dll庫

安裝完成以後,將C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib下的下的libmysql.dll和libmysql.lib文件複製到C:\Qt\Qt5.14.0\5.14.0\mingw73_32\bin目錄或者複製到編譯後的debug或release目錄。

這種方式在部分的電腦可以成功,但是也有些系統不成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章