欢迎光临东莞品牌推广与东莞app开发提供商东莞市智擎信息科技有限公司(原亚米茄亚法)。

咨询服务热线:0769-33533098 / 工作手机:13428442655

ubuntu16.04下qt5连接MySQL数据库

发布人:智擎门户网    发布时间:2022-10-18 10:38:23    次浏览

1.ubuntu16.04下qt5连接MySQL数据库

在.pro文件中添加

QT       += sql


在main.cpp中添加头文件

#include <QtSql>


#include <QMessageBox>


在main.cpp中添加连接数据库的代码 

//连接数据库-------------------------------------------


    QStringList list = QSqlDatabase::drivers();


    qDebug() << list;


    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");


    if(db.isValid())


    {


        QMessageBox::critical(NULL,"connect","OK");


    }


    else


    {


        QMessageBox::critical(NULL,"connect","ERROR");


    }


    db.setHostName("127.0.0.1");// 本地连接


    db.setDatabaseName("vod");// 数据库名字


    db.setUserName("root");// 数据库用户名


    db.setPort(3306);// 如果使用的是默认端口可以不设置


    db.setPassword("123456");// 数据库密码


    if(db.open())


    {


        w.show();


    }


    else


    {


        QMessageBox::warning(NULL,"error","数据库连接失败");


        return 0;


    }


 编译代码,此时如果出现如下问题:表示未加载



 2.连接失败问题解决

分析问题:可能是qt与mysql的位数不相同或者缺少驱动依赖。

查看mysql的版本位数:mysql -V

mysql -V


MySQL显示是64位,然后Qt本身是64位,则排除位数不同,则是需要安装Qt的MySQL驱动的依赖。

解决问题:

首先查找libsqlmysql.so文件位置:

find / -name libqsqlmysql.so


进入qt的sqldrivers目录

cd /opt/Qt5.5.0/5.5/gcc_64/plugins/sqldrivers




通过ldd libqsqlmysql.so查看动态库连接情况,发现有三个库是not found

ldd libqsqlmysql.so




 解决libssl.so.10 => not found和libcrypto.so.10 => not found的问题

# sudo apt-get install libssl1.0.0 libssl-dev


# cd /lib/x86_64-linux-gnu


# sudo ln -s libssl.so.1.0.0 libssl.so.10 


# sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10 


 再次通过ldd libqsqlmysql.so查看动态库链接情况,这时发现这两个链接都已经存在

 


 解决问题:libmysqlclient_r.so.16 not found

下载相关的库文件并放到/usr/lib/x86_64-linux-gnu下面



 cd /usr/lib/x86_64-linux-gnu




执行报错:查找原因发现libmysqlclient_r.so.16 这个文件需要手动创建

方法:删除该libmysqlclient_r.so.16重建连接

root@ubuntu:cd /usr/lib/x86_64-linux-gnu


# ln -s libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16


root@ubuntu:/usr/lib/x86_64-linux-gnu# ls//下面截图显示正常


 


 再查看libmysqlclient_r.so.16可以显示有了,所有依赖库已经下载完成:

 


此时再编译文件可以连接数据库,问题已得到解决。

————————————————

版权声明:本文为CSDN博主「码不停蹄的Fairy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_45662754/article/details/126558102


底部导航

友情链接

联系方式

公司二维码
二维码扫描
扫一扫,添加二维码!

公司名称:东莞市智擎信息科技有限公司(原亚米茄亚法)

联系电话:0769-33533098

联系邮箱:server@omegalphaco.com

联系地址:东莞市莞城区旗峰路万科中心2栋5楼

客服QQ:348090644