ubuntu2204使用qt5.12.12访问mysql报错

报错内容:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

测试代码

void MySQLUtils::test()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setPort(3306);
    db.setDatabaseName("kylin");
    db.setUserName("kylin");
    db.setPassword("123456");
    bool ok = db.open();
    if (ok){
        qDebug()<<"success";
    }
    else {
        qDebug()<<"failed";
    }
}

原因:
qt没找到mysql驱动

解决方案:
重新编译mysql库文件

  1. 安装mysql
    sudo apt-get install mysql-server
    udo apt-get install mysql-client
    sudo apt-get install libmysqlclient-dev

  2. 查看mysql.h文件所在位置
    whereis mysql
    locate mysql.h

  3. 查找 libmysqlclient.so 所在路径
    locate libmysqlclient.so

  4. 编译mysql
    cd Qt安装位置/5.12.12/Src/qtbase/src/plugins/sqldrivers/mysql

修改mysql.pro文件为刚刚我们找到的两个位置

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json
INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

然后sudo qmake这个mysql.pro即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚拟内存会梦见进程调度嘛?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值