ubuntu18.04 Qt5.13.0连接mysql

使用Qt连接mysql 直接报错

    QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("xiaozhu");
    db.setUserName("root");
    db.setPassword("123456");
    db.setPort(3306);

    if (!db.open()){
        qDebug()<< "Failed to  conect root mysql admin";

    }else {
        qDebug()<<"open"        ;
    }

运行时报错

QSqlDatabase: QMYSQL driver not loaded

这是因为Qt 的QMYSQL 驱动不兼容或者不存在,需要重新编译

编译mysql驱动

找到mysql的源码

PS:其中/home/shine/software/Qt则是我的Qt安装的位置

mysql 项目源码的位置
/home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers/mysql则是在项目文件夹

打开项目文件夹里README文件

You will need the MySQL development headers and libraries installed
before compiling this plugin.

See the Qt SQL documentation for more information on compiling Qt SQL
driver plugins (sql-driver.html).
查看帮助文档

根据提示查找sql-driver.html
/home/shine/software/Qt/Docs/Qt-5.13.0/qtsql文件夹下找到sql-driver.html
打开网页
搜索 How to Build the QMYSQL Plugin on Unix and macOS
结果如下图
如何编译QMYSQL驱动

编译项目

PS:其中/home/shine/software/Qt则是我的Qt安装的位置
切换到源码目录

cd   /home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers

编译项目

qmake -- MYSQL_PREFIX=/usr/local

ps: /usr/local 是mysql安装目录
ps: 如果qmake的执行出问题的话就是qmake环境变量没有配置,可以改成以下命令行:即执行特定文件夹下的qmake

/home/shine/software/Qt/5.13.0/gcc_64/bin/qmake   -- MYSQL_PREFIX=/usr/local

编译完成后在/home/shine/software/Qt/5.13.0/Src/qtbase/src/plugins/sqldrivers目录下会出现libqsqlmysql.so.debuglibqsqlmysql.so 两个文件 把它们拷贝到/home/shine/software/Qt/5.13.0/gcc_64/plugins/sqldrivers覆盖原文件,然后就可以连接了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值