Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法

Ubuntu18.04下Qt5.9.8连接mysql数据库失败的解决办法
问题:

连接mysql数据库时,出现如下 提示:
  QSqlDatabase: QMYSQL driver not loaded
  QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
  db open err: “Driver not loaded Driver not loaded”
解决办法:

1、sudo apt-get install libmysqlclient-dev
  2、进入QT安装目录的源码目录(如果安装 时没有选择源码,重新安装下),找到MySql驱动源码目录
    如:/opt/Qt5.9.8/5.9.8/Src/qtbase/src/plugins/sqldrivers/mysql
  3、用Qt Creator打开mysql.pro文件,修改pro文件如下:

4、编译mysql工程,会在上一级目录下的plugin/sqldrivers目录下生成libqsqlmysql.so文件,将该文件拷贝到

/opt/Qt5.9.8/5.9.8/gcc_64/plugins/sqldrivers目录下就可以了。

注:如果编译时出现”qtsqldrivers-config.pri: No such file or directory“找不到的情况,上一级目录打开qsqldriverbase.pri

文件,把include( s h a d o w e d ( shadowed( shadowed(PWD)/qtsqldrivers-config.pri)注释掉

QT = core core-private sql-private
  # For QMAKE_USE in the parent projects.
  #include( s h a d o w e d ( shadowed( shadowed(PWD)/qtsqldrivers-config.pri)
  include( s h a d o w e d ( shadowed( shadowed(PWD)/configure.pri)
  PLUGIN_TYPE = sqldrivers

执行命令:make

注意make命令输出的最后几行,指出了生成的libqsqlmysql.so位置。

4、把生成libqsqlmysql.so拷贝到sqldrivers文件夹下(我是拷贝到:/home/dgp/Qt5.9.8/5.9.8/gcc_64/plugins/sqldrivers/libqsqlmysql.so )

五、测试样例
  到这里,Qt就已经可以连接MySql数据库了,拷贝这个程序去试试吧。

pro文件中添加这句话“QT += sql”,让Qt加载数据库模块

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7
8 int main(int argc, char *argv[])
9 {
10 QCoreApplication app(argc, argv);
11 QSqlDatabase db = QSqlDatabase::addDatabase(“QMYSQL”); //database driver
12 db.setHostName(“localhost”); //database ip address
13 db.setUserName(“username”); //database username
14 db.setPassword(“password”); //database password
15 db.setDatabaseName(“HC”); //database table name
16 if (true == db.open())
17 {
18 qDebug() << “succ”;
19 }
20 else
21 {
22 qDebug() << “failed”;
23 exit(0);
24 }
25 return app.exec();
26 }

参考链接    
https://www.cnblogs.com/zhangnianyong/p/11458033.html

https://forum.qt.io/topic/59449/qsqldatabase-qmysql-driver-not-loaded-build-mysql-plugin

https://www.linuxidc.com/Linux/2016-12/138574.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值