Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 449|回复: 0

fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-8-26 13:16:24 | 显示全部楼层 |阅读模式

     

     在CODE上查看代码片派生到我的代码片
    1. QT       += sql //在.pro文件里加入这一句  
    2.   
    3. //包含头文件  
    4. #include <QDebug>  
    5. #include <QSqlQuery>  
    6. #include <QSqlDatabase>  
    7.   
    8. //连接数据库  
    9.     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
    10.     db.setHostName("localhost");  
    11.     db.setDatabaseName("mydb");  
    12.     db.setUserName("root");  
    13.     db.setPassword("123456");  
    14.     bool ok = db.open();  
    15.     if(!ok)  
    16.     {  
    17.         qDebug()<<"open db fail";  
    18.         return;  
    19.     }  
    20.   
    21. //将数据表中的内容全部列出  
    22.     QSqlQuery query;  
    23.     query.exec("SELECT * FROM tb_A2");  
    24.     while(query.next())  
    25.     {  
    26.         qDebug()<<query.value(0).toString()<<query.value(1).toString();  
    27.     }  
    如上,我编写了一个简单的测试数据库连接的程序,运行时出现了下面的错误提示:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

    在Qt5.2.1中明明已经有MySQL的驱动QMYSQL,为什么还是无法加载呢?

    去google了一把,网上大多数是windows下和Qt4.x版本的,还好最终还是解决了,现在稍微记录解决过程下。

    //Qt的安装路径

    #cd /opt/Qt5.2.1/5.2.1/gcc/plugins/sqldrivers/

    #ls

    libqsqlite.so  libqsqlmysql.so  libqsqlpsql.so

    #ldd libqsqlmysql.so
    这里就会发现:

    libmysqlclient_r.so.16 =>not found

    怎么解决呢?

    //mysql 安装库路径

    #cd /usr/lib/mysql/

    #ls

    INFO_BIN              libmysqlclient.so.18          mysqlbug
    INFO_SRC              libmysqlclient.so.18.0.0      mysql_config
    libmysqlclient.so.18.0.0.bak  plugin

    #cplibmysqlclient.so.18.0.0 libmysqlclient_r.so.16

    #mvlibmysqlclient_r.so.16 /lib/

    #cd /opt/Qt5.2.1/5.2.1/gcc/plugins/sqldrivers/

    #ldd libqsqlmysql.so

    看看libmysqlclient_r.so.16是否还是not found

    如果出现

    libmysqlclient_r.so.16 => /lib/libmysqlclient_r.so.16

    则说明已经成功了。如果还不行,再试着创建一软连接看看,

    # pwd

    /opt/Qt5.2.1/5.2.1/gcc/plugins/sqldrivers
    #ln -s /lib/libmysqlclient_r.so.16 ./libmysqlclient_r.so.16

     

    Good luck !

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 16:38 , Processed in 0.064312 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表