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的驅動已經能夠正常使用了