一,代码部分

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()

            }

            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用户可以被远程连接

文章来源于互联网:QT5.14连接Mysql8.0步骤

发表评论