QT:MYSQL driver not loaded解決方法


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運行數據庫相關操作:

  1. 轉到QT安裝目錄下MSVC2017運行環境的文件夾下,比如在我的電腦上是E:\Qt\5.14.2\msvc2017_64
  2. 進入plugins\sqldrivers目錄下,所以Driver所在的完整目錄是E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers
  3. 檢查這個文件夾下是否有 qsqlmysql.dll 與 qsqlmysqld.dll兩個文件,就像下邊這樣
  4. 如果沒有這兩個文件,就說明缺少MySQL driver。 

1.2、是否缺少MySQL相關庫?

檢查E:\Qt\5.14.2\msvc2017_64\lib目錄下,看是否有libmysql.dlllibmysql.lib兩個文件,如果沒有,就說明缺少MySQL相關庫。

 

 

2、解決方法

2.1、缺少MySQL相關庫:libmysql.dll 與 libmysql.lib

  1. 下載MySQL(注意32位、64位一定要正確),轉到下載好的MySQL目錄下的lib目錄中:D:\MySQL\lib
  2. 找到libmysql.dlllibmysql.lib兩個文件,復制粘貼到1.2中所說的目錄E:\Qt\5.14.2\msvc2017_64\lib目錄下,即可解決。

2.2、缺少MySQL Driver:qsqlmysql.dll qsqlmysqld.dll

這個解決比較復雜,大家出問題也主要是這個問題。

  1. 轉到Qt目錄下的 "E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql"目錄中,大概長下邊這樣:

     

     

  2. 在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)

     

  3. 修改這個項目文件,添加三句話、注釋一句話:
    INCLUDEPATH += "D:\MySQL\include"
    LIBS+="D:\MySQL\lib\libmysql.lib"
    DESTDIR = ../mysql/lib
    #QMAKE_USE += mysql

    其中第一行中的路徑,就是MySQL中include目錄的路徑;第二行中的路徑,就是2.1中所說的MySQL庫的路徑;第三行是輸出driver到哪個文件夾下;

  4. 項目中取消勾選Shadow build
  5. 構建項目
  6. 之后就可以在lib目錄(E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql\lib)下找到驅動文件qsqlmysql.dll  與 qsqlmysqld.dll

  7. 把這兩個文件復制到1.1中所說的目錄E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers下;
  8. 完事!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM