1. 程式人生 > >qt在windows下使用mysql,提示有資料庫,但就是連線不上

qt在windows下使用mysql,提示有資料庫,但就是連線不上

公司專案需求,要做個windows的客戶端,使用mysql資料庫。印象中資料庫都是編譯好的,在plugin裡面也確實有qsqlmysql.dll, qsqlmysqld.dll。但是在使用時提示 QSqlDatabase:QMySQL driver not loaded , available drivers: QSQLITE QPSQL QPSQL7 QMYSQL QMYSQL3。

因為之前在ubuntu下面用的時候,也是類似的結果,所以從網上下載了mysql的安裝程式http://dev.mysql.com/downloads/installer/,我選擇的是5.6.33

下載後直接安裝。就預設安裝目錄就行,不過可以選擇

只安裝server部分就行了。裡面就有需要的include和lib檔案了。


在編譯mysql的驅動的時候,在mysql.pro檔案中增加

INCLUDEPATH += “C:\Program Files (x86)\MySQL\MySQL Server 5.6\include”

LIBS +="-LC:\Program Files (x86)\MySQL\MySQL Server 5.6\lib"(不需要增加-llibmysql,加上應該是反而不能便已成功,因為在qsql_mysql.pri檔案裡面有相關的判斷了)

這樣就行了。

然後我嘗試使用qt creator 編譯,但是發現雖然編譯成功了,但是在對應的目錄裡面並沒有找到驅動檔案,最後轉到CMD上面進行編譯,進入qt的原始碼目錄,然後在mysql目錄上按住shift,然後單擊右鍵

選擇在此處開啟命令視窗,進入終端,我使用的是mingW版本的qt,所以使用對應的qmake,生成Makefile。然後mingw32-make,不要打上.exe


之後在所使用的qt creator中的plugins目錄裡面就有了剛剛編譯出來的驅動檔案。


如果此時編譯自己的程式發現還是同樣的問題。因為還差一步,把mysql安裝目錄下server中lib檔案加下面的libmysql.dll libmysql.lib和mysqlclient.lib拷貝到qt 根目錄下D:\Qt5.6.0-android\5.6\mingw49_32\bin中


再進行編譯就可以了。也許不需要拷貝那個client的東西,我沒有嘗試。