Qt新安裝了個5.12.8發現無法連接Mysql數據庫,運行時提示沒有Mysql驅動,
首先在程序中添加了代碼查看支持的驅動 qDebug() << QSqlDatabase::drivers(),在應用程序輸出框中會打印出所有支持的數據庫驅動,我解決問題之后現在其中包括QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7等等這幾種驅動,下面找不到驅動時就有兩種情況了:
一、
⑴其中包括你要連接的數據庫Mysql的驅動,在這種情況是是最簡單的,你只需要安裝一個mysql,mysql版本一定要和Qt運行版本一致,例如32位qt工程用32位的mysql文件,64位的qt工程用64位的mysql文件,否則錯誤無法解決,然后去mysql安裝目錄下搜索libmysql.dll;
⑵或者你不想安裝mysql,需要自己找資源包括mysql的必要文件,文章底部有我的資源可以供你們下載,或者也可以自己找也可以,然后將壓縮包解壓之后,找到libmysql.dll;
⑶最后將libmysql.dll拷貝到Qt下的一個指定安裝目錄下,例如:D:\Qt\Qt5.12.8\mingw73_32\bin目錄下即可解決這種情況下的找不到驅動失敗情況,如果解決不了一定是mysql的libmysql.dll和qt的版本不對應
二、
⑴列舉出支持的數據庫之后發現沒有mysql,這就有點麻煩了,首先需要安裝Qt時將源文件Src安裝到本地,因為我們要用到Src里邊的工程文件,否則的話還是將Qt卸載重新安裝吧,
⑵找到QT安裝目錄下的mysql工程文件,例如D:\Qt\Qt5.12.8\Src\qtbase\src\plugins\sqldrivers\mysql,在這個目錄下會有mysql.pro文件,用qt打開mysql.pro工程文件加載到qt工程中
⑶修改mysql.pro工程文件,將QMAKE_USE+=mysql屏蔽或者刪除掉,怎么屏蔽?在行首加#即可,
再添加頭文件目錄INCLUDEPATH += “mysql安裝目錄或者解壓壓縮包后的目錄中的include目錄”,
添加庫庫文件LIBS += “mysql安裝目錄或者解壓壓縮包后的目錄中的lib下的libmysql.lib文件”,
為了方便找到生成的庫文件,最后指定輸出目錄為當前工程目錄DESTDIR=…/mysql/lib/
例如:
INCLUDEPATH += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\include”
LIBS += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\lib\libmysql.lib”
DESTDIR=…/mysql/lib/
⑷好,現在都添加完畢了,然后構建工程即可,但是構建時你會發現構建失敗,會有報錯提示,這個沒關系,不用管,然后你會發現當前目錄下多了一個lib文件夾,里邊包含了工程構建出來的四個庫文件:libqsqlmysql.a,libqsqlmysql.a,qsqlmysql.dll,qsqlmysqld.dll,
只需要將這兩個dll文件拷貝到qt驅動目錄(例如:D:\Qt\Qt5.12.8\mingw73_32\plugins\sqldrivers)下,你會發現所有支持的數據庫驅動全在這里,
⑸之后情況就跟一相同了,找到libmysql.dll拷貝到D:\Qt\Qt5.12.8\mingw73_32\bin,就可以完美解決問題
Mysql-win32-forQt.zip
https://download.csdn.net/download/only_a_Heroic_car/12695104