Qt 连接mysql数据库报错

1 篇文章 0 订阅

Qt版本5.15.2,系统ubuntu18.04; mysql版本5.73

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

问题描述:网上很多教程都说是mysql驱动安装问题,只要把/usr/lib/x86_64-liniux-gnu/libqsqlmysql.so 文件拷贝到 /home/feather/Qt/5.15.2/gcc_64/plugins/sqldrivers目录下,并添加执行权限(sudo chmod +x libqsqlmysql.so);然后再在工程*.pro文件下添加LIBS库。发现运行代码依然没有用。当然前提安装好了mysql-server,至于libqt4-mysqlkey不用安装,因为后面我们编译源码

 

解决办法:

编译源码生成新的驱动库文件

step1:确保安装qt时安装了源码,如果没有安装源码,也不必卸载掉已经安装了的qt,我们只需要添加组件即可。 找到我们安装Qt目录下的 MaintenanceTool文件,并双击或者终端运行它,当然你需要在Qt官网注册一个用户,我想在安装Qt之前你已经做过了。

 

点击下一步需要你更新组件后才能添加新的组件,那我们选择update components选项进行更新。接下来我们选择对应版本的源代码。

 我的Qt版本时5.15.2所以我选择了Qt5.15.2下面的source。 完成之后我们就会在Qt安装目录下的5.15.2目录下多出来一个Src目录,网上很多教程都是说拷贝Src目录下的mysql文件夹,拿出来编译。他们还贴出了各种修改的办法,去编译,我不建议这样做,我的建议是直接拷贝整个qtbase目录拿出来编译,因为单独编译mysql子工程,会有很多依赖其他目录里面文件,而且他们提出的修改等解决办法不一定适应你的qt版本,Qt版本在更新,文件组成结构会有变化,因此没有固定的修改方案,与其修改这儿修改那儿,还不如干脆利落的拷贝整个qtbase目录出来编译。

拷贝出来后,进入到整个目录,打开终端:运行

./configure

弹出这个窗口让我们选择,我们当然选择开源版本 输入‘o’然后输入‘y’ yes下去

Creating qmake...
.Done.

Selecting Qt Edition.

Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.

Which edition of Qt do you want to use?

完成后我们会看到以下输出,我们会看大MySql一栏为yes

Qt Sql:
  SQL item models ........................ yes
Qt Widgets:
  GTK+ ................................... no
  Styles ................................. Fusion Windows
Qt PrintSupport:
  CUPS ................................... no
Qt Sql Drivers:
  DB2 (IBM) .............................. no
  InterBase .............................. no
  MySql .................................. yes
  OCI (Oracle) ........................... no
  ODBC ................................... yes
  PostgreSQL ............................. yes
  SQLite2 ................................ no
  SQLite ................................. yes
    Using system provided SQLite ......... no
  TDS (Sybase) ........................... no
Qt Testlib:
  Tester for item models ................. yes

Note: Also available for Linux: linux-clang linux-icc

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/usr/local/Qt-5.15.2'.

Prior to reconfiguration, make sure you remove any leftovers from

然后我们输入make 编译工程,编译完成之后我们会在qtbase目录下多出plugins目录,里面就有我们需要的库文件,把他拷贝到/home/feather/Qt/5.15.2/gcc_64/plugins/sqldrivers目录下,当然注意修改为你的目录,

大功告成!!!!!!!!!!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Qt连接MySQL数据库,需要安装MySQL驱动程序。以下是连接MySQL数据库的步骤: 1. 安装MySQL驱动程序 在Qt连接MySQL数据库,需要安装Qt提供的MySQL驱动程序。可以使用Qt Maintenance Tool来安装MySQL驱动程序。打开Qt Maintenance Tool,选择“添加或删除组件”,找到“Qt版本->Qt->Qt 5.x->Qt 5.x MySQL”,然后选择安装。 2. 引入MySQL头文件 在Qt代码中,需要引入MySQL头文件,包括<QSqlDatabase>、<QSqlQuery>和<QSqlError>。可以使用以下代码引入这些头文件: ```c++ #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> ``` 3. 连接MySQL数据库 使用以下代码连接MySQL数据库: ```c++ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 设置主机名 db.setPort(3306); // 设置端口号 db.setDatabaseName("database_name"); // 设置数据库名 db.setUserName("username"); // 设置用户名 db.setPassword("password"); // 设置密码 if (!db.open()) { qDebug() << "Failed to connect to database:" << db.lastError().text(); } ``` 其中,QSqlDatabase::addDatabase()函数设置MySQL数据库驱动程序,其参数为“QMYSQL”。然后,设置主机名、端口号、数据库名、用户名和密码,并调用QSqlDatabase的open()函数连接MySQL数据库。如果连接失败,可以使用db.lastError().text()来获得错误信息。 4. 执行SQL查询 连接MySQL数据库后,可以使用以下代码执行SQL查询: ```c++ QSqlQuery query; if (!query.exec("SELECT * FROM table_name")) { qDebug() << "Failed to execute query:" << query.lastError().text(); } while (query.next()) { // 处理结果集 } ``` 其中,QSqlQuery对象用于执行SQL查询,其exec()函数执行查询,next()函数用于遍历结果集。 以上就是Qt连接MySQL数据库的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值