QT5.14連接Mysql8.0步驟

一,代碼部分

1,pro文件中添加

QT +=? sql

2,代碼

db2 = QSqlDatabase::addDatabase("QMYSQL","conn2");

//尤其注意這里一定要給連接命名,這里命名為conn2,如果不命名qt再mysql連接不上是會發(fā)生其他數(shù)據(jù)庫連接的各種問題,此乃大坑一個

? ? ? ? ? ? db2.setHostName(DBserver);

? ? ? ? ? ? db2.setDatabaseName(DBname);

? ? ? ? ? ? db2.setPort(3306);

? ? ? ? ? ? db2.setUserName(DBaccount);

? ? ? ? ? ? db2.setPassword(DBpassword);

? ? ? ? ? ? bool ok = db2.open();

? ? ? ? ? ? if (ok)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? qDebug() << "連接數(shù)據(jù)庫ok";

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? qDebug() << "連接數(shù)據(jù)庫失敗";

? ? ? ? ? ? }

二,外部部分

解決報(bào)錯,"Driver not loaded Driver not loaded"

就是需要一個libmysql.dll

動態(tài)庫下載:

https://download.csdn.net/download/dengjin20104042056/11046328

或者

鏈接:https://pan.baidu.com/s/1S3X99S4WOtEW9Adq157odQ

提取碼:xz1d

將libmysql.dll下載后復(fù)制到Qt的安裝目錄中

外部部分參考資料原文鏈接 https://blog.csdn.net/dengjin20104042056/article/details/88725035

三,mysql部分

外部弄好了之后報(bào)了一個Unable to load authentication plugin 'caching_sha2_password'的錯誤。

錯誤的原因是由于MySQL8.0之后的加密規(guī)則為caching_sha2_password,而在此之前的加密規(guī)則為mysql_native_password。qt不認(rèn)識這個加密規(guī)則

解決方法:

mysql -u 用戶 -p

ALTER USER '用戶'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼

注意保證mysql用戶可以被遠(yuǎn)程連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容