ubuntu18.04中使用QT 5.12.2连接MYSQL8.0.15

                                         ubuntu18.04中使用QT 5.12.2连接MYSQL8.0.15

一.初次在QT中连接MYSQL可能会出现以下错误:
在这里插入图片描述检查QT安装目录下是否有:libmysqlclient.so
在这里插入图片描述
发现存在mysql这个驱动文件,参考了很多文章,都说需要重新编译QT中mysql文件,但是个人编译多次均没有通过。所以不得不另外找原因。
二.问题解决途径:
在QT的安装目录下进入到此页面:使用ldd libmysqlclient.so 查看依赖库:
ubuntu18.04中使用QT 5.12.2连接MYSQL8.0.15_第1张图片发现所有依赖库都存在,此种情况下QT是可以正常连接数据库的,在问题没有解决前,用 ldd显示会有libmysqlclient.so.18 => not found
使用测试命令查看在没有此依赖库时qt的输出:

#include "widget.h"
#include "ui_widget.h"
#include
#include
#include
#include
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->loadMySqlDriver();
}

Widget::~Widget()
{
    delete ui;
}
void Widget::loadMySqlDriver()
{
    QPluginLoader loader;
    // MySQL 驱动插件的路径
//    loader.setFileName("/Users/Biao/Qt5.4.0/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib");
    loader.setFileName("/home/canzhen/Qt/5.12.2/gcc_64/plugins/sqldrivers/libqsqlmysql.so");
    qDebug() << loader.load();
    qDebug() << loader.errorString();
}

运行输出得到:
在这里插入图片描述这里,显示缺少这个依赖库,下载安装即可,下载链接为:
libmysqlclient.so.18下载地址
下载完成后点击文件直接安装,再次运行上面测试程序得到下面结果:
在这里插入图片描述显然,已经消除了依赖库的影响,下面测试能否连接数据库并显示,代码如下:

#include "widget.h"
#include 
#include 
#include 
#include 
#include 
#include 
#include 
bool creatConnect();
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        QTextCodec::setCodecForLocale(codec);

        if(!creatConnect())
        {
            return 1;
        }

        qDebug() << "Available drivers:";

        QStringList drivers = QSqlDatabase::drivers();

        foreach(QString driver, drivers)
            qDebug() << "\t "<< driver;

        qDebug() << "End";

        QSqlQuery query;
        QString sql = "select * from test1;";
        qDebug() << sql;
        query.exec(sql);
        while(query.next())
        {
            qDebug()<

显示结果如下:

ubuntu18.04中使用QT 5.12.2连接MYSQL8.0.15_第2张图片
ubuntu18.04中使用QT 5.12.2连接MYSQL8.0.15_第3张图片 数据库如下:
在这里插入图片描述
成功!注意:qt连接mysql数据库失败首先检查依赖库是一个很稳妥的做法,此路不通,再考虑编译mysql源码吧!差什么依赖库下载即可!

你可能感兴趣的:(QT)