一,代碼部分
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)程連接