現象:
QT5.15.1訪問MySQL5.7數據庫報錯:QMYSQL driver not loaded
原因:QT5默認沒有安裝MySQL驅動。
我尼瑪,QT開發者是咋想的?給我DB訪問組件卻無法訪問DB,這不是挖坑讓你爹跳嗎?你賣瓜不保熟啊!
連SQLite驅動都有,最常用的MySQL卻不支持,你這套QT豈不是半成品嗎,挺會省事啊,別嘚兒喝的。
解決:
1、按照網上資料介紹,把MySQL安裝路徑下
C:\Program Files\MySQL\MySQL Server 5.7\lib
里面的libmysql.dll復制到
QT的安裝路徑下
C:\Qt\5.15.1\msvc2019_64\bin
再次運行程序訪問DB,還是失敗,仍然報錯:QMYSQL driver not loaded
發帖的狗懶子,自己動手試過沒有啊,就特么瞎嗶嗶!
2、打開QT安裝路徑下
C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers
看到其中各種類型的驅動庫dll,包括sqlite等,唯獨沒有和mysql有關的dll文件,
問題應該就是這里了,那就想辦法弄個mysql的驅動庫來
3、打開QT安裝路徑下的源碼
C:\Qt\5.15.1\Src\qtbase\src\plugins\sqldrivers\mysql
雙擊用QTCreator打開mysql.pro
(1)打開mysql.pro文件
注釋掉
QMAKE_USE += mysql結尾添加幾行代碼:
# 添加你自己的mysql安裝目錄下的include文件夾
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 5.7\include"
# 添加你的mysql安裝目錄下的lib文件夾下的libmysql.lib文件
LIBS += "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.lib"
# 設置編譯好的qmysql.dll放置的目錄,不然你可能不知道會生成在哪。
DESTDIR = ../mysql/mysqlDll
(2)打開qsqldriverbase.pri文件
注釋掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)
當前路徑的上層路徑sqldrivers\中并沒有這個qtsqldrivers-config.pri文件,只有configure.pri文件。
改為:
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
尼瑪,QT的開發者給個源碼也是陷阱重重啊,向你問好:尼瑪拉格-彼得!
(1)(2)兩步工作做完,開始點錘子圖標編譯。
編譯失敗,報錯找不到<mysql.h>文件。
再查資料,似乎是QT不能識別路徑中的空格。
把MySQL安裝路徑下的C:\Program Files\MySQL\MySQL Server 5.7文件夾整個拷貝出來并改名為C:\MySQL5
把步驟(1)中添加的代碼中的路徑改為
INCLUDEPATH += "C:\MySQL5\include"
LIBS += "C:\MySQL5\lib\libmysql.lib"
再次編譯,又失敗,還是報錯找不到<mysql.h>文件
這次似乎是斜杠的問題
把步驟(1)中添加的代碼中的路徑再改為
INCLUDEPATH += "C:/MySQL5/include"
LIBS += "C:/MySQL5/lib/libmysql.lib"
再次編譯,成功!(有可能編譯失敗,但已生成qsqlmysqld.dll)
4、把生成的qsqlmysqld.dll拷貝到QT安裝路徑下的驅動目錄
C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers
再次運行程序,訪問DB,成功!
O了!
牛逼-克拉斯!
尼瑪拉格-彼得!
尼瑪,真不容易啊!
尼瑪,QT的開發者,幸虧你爹我扛造!真應該送你們去菲律賓皮帶大隊網絡科技有限公司進修啊!
參考這哥們:
https://www.cnblogs.com/dz-study/p/12382837.html
posted on 2021-10-15 10:32
小王 閱讀(2621)
評論(0) 編輯 收藏 引用 所屬分類:
DB 、
Qt