QT:MYSQL driver not loaded解決方法
阿新 • • 發佈:2021-06-20
0、參考(按對本人幫助從高到低排列)
Qt5.14.1 如何編譯和使用mysql和mariadb資料庫驅動
(15條訊息) QMYSQL driver not loaded 的原理和解決辦法_m15814478834的專欄-CSDN部落格
(15條訊息) 關於windows下Qt報告“QMYSQL driver not loaded”的解決辦法_ac_blood的部落格-CSDN部落格
1、原因
缺少MySQL資料庫驅動(即Driver)或MySQL相關庫
1.1、是否缺少Driver?
假設我們要用MSVC2017執行資料庫相關操作:
- 轉到QT安裝目錄下MSVC2017執行環境的資料夾下,比如在我的電腦上是E:\Qt\5.14.2\msvc2017_64
- 進入plugins\sqldrivers目錄下,所以Driver所在的完整目錄是E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers;
- 檢查這個資料夾下是否有qsqlmysql.dll與qsqlmysqld.dll兩個檔案,就像下邊這樣
-
如果沒有這兩個檔案,就說明缺少MySQL driver。
1.2、是否缺少MySQL相關庫?
檢查E:\Qt\5.14.2\msvc2017_64\lib目錄下,看是否有libmysql.dll與libmysql.lib兩個檔案,如果沒有,就說明缺少MySQL相關庫。
2、解決方法
2.1、缺少MySQL相關庫:libmysql.dll與 libmysql.lib
- 下載MySQL(注意32位、64位一定要正確),轉到下載好的MySQL目錄下的lib目錄中:D:\MySQL\lib;
- 找到libmysql.dll與libmysql.lib兩個檔案,複製貼上到1.2中所說的目錄E:\Qt\5.14.2\msvc2017_64\lib目錄下,即可解決。
2.2、缺少MySQL Driver:qsqlmysql.dll 與 qsqlmysqld.dll
這個解決比較複雜,大家出問題也主要是這個問題。
- 轉到Qt目錄下的 "E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql"目錄中,大概長下邊這樣:
- 在Qt Creator中開啟該目錄下的mysql.pro,相當於開啟這個mysql專案,進入mysql.pro下:
#mysql.pro TARGET = qsqlmysql HEADERS += $$PWD/qsql_mysql_p.h SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp PLUGIN_CLASS_NAME = QMYSQLDriverPlugin OTHER_FILES += mysql.json QMAKE_USE += mysql include(../qsqldriverbase.pri)
- 修改這個專案檔案,新增三句話、註釋一句話:
INCLUDEPATH += "D:\MySQL\include" LIBS+="D:\MySQL\lib\libmysql.lib" DESTDIR = ../mysql/lib
#QMAKE_USE += mysql其中第一行中的路徑,就是MySQL中include目錄的路徑;第二行中的路徑,就是2.1中所說的MySQL庫的路徑;第三行是輸出driver到哪個資料夾下;
- 在專案中取消勾選Shadow build:
- 構建專案
-
之後就可以在lib目錄(E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql\lib)下找到驅動檔案qsqlmysql.dll 與qsqlmysqld.dll;
- 把這兩個檔案複製到1.1中所說的目錄E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers下;
- 完事!