Qt連線mysql資料庫

2021-10-21 02:02:54 字數 2186 閱讀 2432

最近在學習qt,連線資料庫的時候缺少動態庫,在網上找了各種方法都部怎麼完善,現記錄我解決的過程

qt5是不自帶mysql的驅動的,連線mysql需要兩個dll動態庫檔案,qsqlmysql.dll 和libmysql.dll

第乙個檔案需要手動編譯,第二個檔案可以從mysql的bin目錄下複製

從mysql的lib目錄下複製libmysql.dll檔案到qt5.14.2\5.14.2\mingw73_32\bin目錄下.注意mysql的位數要和qt的位數一致

用qt creator開啟e:\qt\qt5.14.2\5.14.2\src\qtbase\src\plugins\sqldrivers\mysql.pro檔案,

注釋qmake_use += mysql

新增includepath += e:\qt\qt5.14.2\5.14.2\src\qtbase\src\plugins\sqldrivers\mysql\include

libs += e:\qt\qt5.14.2\5.14.2\src\qtbase\src\plugins\sqldrivers\mysql\lib\libmysql.lib

destdir = …/mysql/lib32/

修改後的**如下:

target = qsqlmysql

headers += $$pwd/qsql_mysql_p.h

sources += $$pwd/qsql_mysql.cpp $$pwd/main.cpp

#qmake_use += mysql

other_files += mysql.json

plugin_class_name = qmysqldriverplugin

include(.

./qsqldriverbase.pri)

#該路徑是mysql的標頭檔案路徑

includepath += e:\qt\qt5.

14.2\5.14

.2\src\qtbase\src\plugins\sqldrivers\mysql\include

#這是mysql的庫檔案路徑

libs += e:\qt\qt5.

14.2\5.14

.2\src\qtbase\src\plugins\sqldrivers\mysql\lib\libmysql.lib

#為了方便查詢,不妨增加一條語句,該語句用來指明編譯後的結果輸出的位置

destdir =..

/mysql/lib32/

直接編譯會報錯,這裡清理一下專案執行qmake,在編譯一次即可

編譯好的檔案會在mysql.pro的同級目錄生成乙個lib32的目錄,複製目錄裡的全部檔案到qt5.14.2\5.14.2\mingw73_32\plugins\sqldrivers目錄下即可

//列印qt支援的資料庫驅動

//qdebug()/連線資料庫

database=

qsqldatabase

::adddatabase

("qmysql");

database.

sethostname

("127.0.0.1");

//ip位址

埠database.

setusername

("root");

//賬號

database.

setpassword

("root");

//密碼

database.

setdatabasename

("qt_test");

//資料庫名稱

ok,連線成功

Qt連線MySql資料庫

qt連線mysql資料庫首先得保正當前編譯機中有符合自己編譯環境的mysql驅動,驅動編譯過程可以參照 連線資料庫 如下 qsqldatabase sql qsqldatabase adddatabase qmysql 選擇資料庫 sql.setdatabasename mydatabase 設定要...

Qt連線mysql資料庫

qt連線mysql資料庫提示driver not loaded driver not loaded問題 方法1 把mysql安裝路徑的 libmysql.dll 拷貝到qt的安裝路徑d qt qt5.4.0 5.4 mingw491 32 bin下 如果還不能解決問題,這很有可能是 qt的版本與my...

Qt連線資料庫Mysql(配置)

windows pro檔案 在windows下使用第三方庫的方法 d mysql sql liblibs ld mysql sql lib llibmysql 標頭檔案,包含mysql.h,注意是使用斜槓,不是反斜槓,c語言風格 路徑中使用 符號 include 沒有這個會報錯找不到socket i...