若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428文章來源地址http://www.zghlxwxcb.cn/news/detail-425933.html
紅胖子網(wǎng)絡(luò)科技博文大全:開發(fā)技術(shù)集合(包含Qt實(shí)用技術(shù)、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機(jī)、軟硬結(jié)合等等)持續(xù)更新中…
Qt開發(fā)專欄:三方庫開發(fā)技術(shù)
前言
??mysql驅(qū)動(dòng)版本msvc2015x32版本調(diào)好, mysql的mingw32版本的驅(qū)動(dòng)上一個(gè)版本編譯并測(cè)試好,有些三方庫最低支持vs2017,所以只能使用msvc2017x64,基于Qt5.9.3,于是本篇編譯mysql驅(qū)動(dòng)的msvc2017x64版本,滿足當(dāng)前的特定需求,這次過程有點(diǎn)費(fèi)勁,可能是Qt的版本低于Qt5.12,繼續(xù)無保留分享出來。
??本篇主要描述Qt5.9.3 msvc2017x64 + mysql8.0.16的驅(qū)動(dòng)編譯過程。
相關(guān)博客
??《Qt+MySql開發(fā)筆記:Qt5.9.3的mingw32版本編譯MySql8版本驅(qū)動(dòng)并Demo連接數(shù)據(jù)庫測(cè)試》
??《Qt+MySql開發(fā)筆記:Qt5.9.3的msvc2017x64版本編譯MySql8.0.16版本驅(qū)動(dòng)并Demo連接數(shù)據(jù)庫測(cè)試》
??《MySql開發(fā)筆記:MySql數(shù)據(jù)庫服務(wù)搭建以及建表腳本導(dǎo)入》
??《案例分享:Qt激光加工焊接設(shè)備信息化軟件研發(fā)(西門子PLC,mysql數(shù)據(jù)庫,用戶權(quán)限控制,界面設(shè)計(jì),參數(shù)定制,播放器,二維圖,期限控制,參數(shù)調(diào)試等)》
??《案例分享:Qt工程機(jī)械真空激光焊接系統(tǒng)軟件產(chǎn)品定制(西門子PLC,mysql數(shù)據(jù)庫,用戶權(quán)限控制,界面配置,參數(shù)定制,播放器,二維圖標(biāo),rgv小車,期限控制,參數(shù)調(diào)試等)》
編譯環(huán)境
Qt5.9.3 msvc2017x64
??安裝得時(shí)候記得要勾選上源碼
mysql-installer-community-8.0.16.0
??
下載數(shù)據(jù)庫
??https://downloads.mysql.com/archives/community/
??
編譯mysql驅(qū)動(dòng)庫(Qt5.9.3+mysql8.0.16)
步驟一:安裝Qt5.9.3勾選msvc2017x64版本。
??
??其他過程略。
步驟二:下載數(shù)據(jù)庫64位驅(qū)動(dòng)運(yùn)行程序并解壓
??下載數(shù)據(jù)庫運(yùn)行包文件。(注意:這里要注意跟目標(biāo)機(jī)器安裝的版本要一致)。
??下載地址:https://dev.mysql.com/downloads/connector/cpp
??(這里查看“入坑一”)
??直接越過了下載了,因?yàn)橄螺d下來的目前編譯都有問題
??數(shù)據(jù)庫安裝在本地,直接通過本地了:
??
步驟三:打開qt中自帶的mysql源碼工程
??
??使用QtCreator打開
??
??這里要去掉shadow,否則會(huì)其他錯(cuò)誤,參考“入坑一”和“入坑二”:
??
??
??
步驟四:qmake并且build構(gòu)建
??
??
??(這里要是報(bào)錯(cuò)就回過去看步驟三以及入坑一二)
??
步驟五:替換插件的mysql庫
??
步驟六:將數(shù)據(jù)庫的libmysql.dll拷貝到bin目錄
??將mysql的lib下的libmysql.dll拷貝到qt的msvc2017x64的bin目錄下,而且打包軟件的時(shí)候也要帶上。
??這里是直接將之前l(fā)ib對(duì)應(yīng)的libmysql.dll拷貝進(jìn)qt的bin和應(yīng)用部署文件夾下:
??
??(PS:打包發(fā)布時(shí)windeployqt不會(huì)主動(dòng)拷貝,是需要手動(dòng)復(fù)制過去)
步驟七:編譯應(yīng)用連接測(cè)試
??將應(yīng)用從odbc切入mysql驅(qū)動(dòng)編譯數(shù)據(jù)庫的工程:
??
??這里是因?yàn)閙ysql8修改了加密方式,直接使用mysql驅(qū)動(dòng)的話要修改加密方式,修改方式主要是部署數(shù)據(jù)庫的時(shí)候修改,可以登錄數(shù)據(jù)庫然后做如下操作:
??
??然后應(yīng)用登錄測(cè)試
??
??若還需要遠(yuǎn)程登錄,則繼續(xù)步驟八和九:
步驟八:配置數(shù)據(jù)庫賬號(hào)允許遠(yuǎn)程操作(這一步是之前mingw32的測(cè)試步驟,為了方便直接放這)
??這是因?yàn)橘~號(hào)不被允許遠(yuǎn)程登錄,所以需要修改數(shù)據(jù)庫用戶的配置,讓其允許遠(yuǎn)程登錄。
??修改用戶被允許遠(yuǎn)程登錄,先使用mysql控制端輸入密碼登錄,然后操
作:
use mysql;
select host,host from user;
update user set host = ‘%’ where user = ‘root’;
select host,host from user;
??這時(shí)候,還是不行,需要強(qiáng)行刷新以下
flush privileges;
??
??
??然后成功:
??
??至此,Qt5.9.3 msvc2017x64 + mysql8.0.16數(shù)據(jù)庫連接驅(qū)動(dòng)編譯完成。
步驟九:數(shù)據(jù)庫的遠(yuǎn)程操作工具連接(這一步是之前mingw32的測(cè)試步驟,為了方便直接放這)
??使用遠(yuǎn)程工具測(cè)試,發(fā)現(xiàn)出錯(cuò):
??
??這是因?yàn)?.0之后mysql更改了密碼的加密規(guī)則,目前的客戶端連接軟件還不支持Mysql8新增加的加密方式caching_sha2_password,所以需要修改用戶的加密方式,將其改回舊加密驗(yàn)證方式。
??先登錄mysql命令行,執(zhí)行以下,主要是youPassword要替換為你使用遠(yuǎn)程登錄的賬戶密碼:
alter user 'root'@'%' identified by 'youPassword' password expire never;
alter user root identified with mysql_native_password by 'youPassword';
flush privileges;
??
??
入坑
入坑一:編譯報(bào)錯(cuò)無法打開“無法打開輸入文件“D:\mysql-connector-c-6.1.11-winx64\lib.ob”
問題
??編譯錯(cuò)誤,無法通過
??
嘗試解決
??多方查找,定位在提供的庫的版本上,也不行。
??本次版本,最后嘗試直接從mysql安裝文件夾里面拿,可以通過,但是也沒有看到根錄下文件(后來檢查路徑才確認(rèn)未生成到根目錄下)。
??以下截圖過程可參考:
??
??
??
??然后去掉shadow,成功了:
??
解決
??去掉shaodw,路徑查看“入坑二”。
入坑二:沒有編譯輸出
問題
??按照之前mingw32編譯的沒找到輸出
原因
??有些配置文件,所以直接全部構(gòu)建,來看生成的文件夾
??
??發(fā)現(xiàn)是路徑問題。
解決
??找到到對(duì)應(yīng)的路徑,生成了。
??
??綜合一和二,還有嘗試下載驅(qū)動(dòng)庫的編譯器vc版本問題,這里解決差不多花了大半天了去嘗試、摸索然后逐步排除各種問題。文章來源:http://www.zghlxwxcb.cn/news/detail-425933.html
若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428
到了這里,關(guān)于Qt+MySql開發(fā)筆記:Qt5.9.3的msvc2017x64版本編譯MySql8.0.16版本驅(qū)動(dòng)并Demo連接數(shù)據(jù)庫測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!