一,代码部分
1,pro文件中添加
QT += sql
2,代码
db2 = QSqlDatabase::addDatabase("QMYSQL","conn2");
//尤其注意这里一定要给连接命名,这里命名为conn2,如果不命名qt再mysql连接不上是会发生其他数据库连接的各种问题,此乃大坑一个
db2.setHostName(DBserver);
db2.setDatabaseName(DBname);
db2.setPort(3306);
db2.setUserName(DBaccount);
db2.setPassword(DBpassword);
bool ok = db2.open();
if (ok)
{
qDebug() << "连接数据库ok";
}
else
{
qDebug() << "连接数据库失败";
}
二,外部部分
解决报错,"Driver not loaded Driver not loaded"
就是需要一个libmysql.dll
动态库下载:
https://download.csdn.net/download/dengjin20104042056/11046328
或者
链接:https://pan.baidu.com/s/1S3X99S4WOtEW9Adq157odQ
提取码:xz1d
将libmysql.dll下载后复制到Qt的安装目录中
外部部分参考资料原文链接 https://blog.csdn.net/dengjin20104042056/article/details/88725035
三,mysql部分
外部弄好了之后报了一个Unable to load authentication plugin 'caching_sha2_password'的错误。
错误的原因是由于MySQL8.0之后的加密规则为caching_sha2_password,而在此之前的加密规则为mysql_native_password。qt不认识这个加密规则
解决方法:
mysql -u 用户 -p
ALTER USER '用户'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码
注意保证mysql用户可以被远程连接