Qt5.13編譯mysql5.6.45-x64驅動(Win10)

1、系統環境

系統版本:Win10 1809
Qt版本:5.13
編譯器版本:MSVC2015-x64
mysql版本:5.6.45-x64

2、編譯前準備

Qt安裝時有勾選resources選項,這個選項表示安裝帶有源碼。
mysql5.6.45已正確安裝,如爲安裝可查看上篇博客。

3、打開驅動編譯的源文件

路徑參考:
D:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
雙擊打開文件,
選擇編譯器,選擇之後點擊configure project 按鈕
如圖在這裏插入圖片描述

4、修改工程配置文件

雙擊打開mysql.Pro
在這裏插入圖片描述

修改下列選項

1)註釋 QMAKE_USE += mysql

2)在OTHER_FILES += mysql.json後添加(ps:將下述目錄替換爲安裝的實際目錄)

win32:LIBS += $$quote( D:\Program Files\mysql-5.6.45-winx64\lib\libmysql.lib )
INCLUDEPATH += $$quote( D:\Program Files\mysql-5.6.45-winx64/include )
DEPENDPATH += $$quote( D:\Program Files\mysql-5.6.45-winx64/include )

修改之後如下圖所示在這裏插入圖片描述

5、開始編譯

配置文件修改完成之後,重新構建項目
構建項目完成之後,點擊編譯
編譯完成後,dll文件會在Qt安裝磁盤根目錄下的plugins的文件夾裏。
在這裏插入圖片描述

如果沒有任何錯誤消息提示,但是還是編譯失敗的話,請打開qt的案例,直接運行,觀察是否正常運行,如果提示錯誤信息Qt LNK1158無法運行rc.exe則參考之下解決方案,完成後再重新編譯mysql驅動
在這裏插入圖片描述

6、dll文件的拷貝覆蓋

dll文件生成成功後,將 qsqlmysql.dll 和 qsqlmysqld.dll 兩個文件拷貝到兩個指定目錄內
本人的是:
D:\Qt\Qt5.13.0\5.13.0\msvc2015_64\bin
D:\Qt\Qt5.13.0\5.13.0\msvc2015_64\plugins\sqldrivers

7、測試

新建一個Qt Widget的工程
在ui上添加一個lineEdit控件
修改.pro文件,QT += sql
在.h文件中添加定義

QSqlDatabase database;
QString connectMysql(QString connectName,QString ip , int port,QString userName,QString password);

在.cpp文件中添加代碼

ui->lineEdit->setText(connectMysql("huang","127.0.0.1",3306,"root",""));
QString mysqltest::connectMysql(QString connectName,QString ip , int port ,QString userName,QString password)
{
   if (QSqlDatabase::contains(connectName))//判斷testConnect連接是否存在並連接
	{
	database = QSqlDatabase::database(connectName);
      	}
      	else //未連接則新建數據庫連接
     	 {
	    database=QSqlDatabase::addDatabase("QMYSQL",connectName);//創建數據庫連接,併爲其命名testConnect
            database.setHostName(ip);      //連接數據庫主機名,這裏需要注意(若填的爲”127.0.0.1“,出現不能連接,則改爲localhost)
            database.setPort(port);                 //連接數據庫端口號,與設置一致           
	    database.setUserName(userName);          //數據庫用戶名,與設置一致      
	    database.setPassword(password);   //數據庫密碼,與設置一致
        }
        if(!database.open())
        {
            return "fail to connect mysql:"+database.lastError().text();
        }
 return "";
}

如圖所示
在這裏插入圖片描述
如果lineEdit中無任何提示,
恭喜你,mysql的驅動已經能夠正常使用了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章