linux下QT连接mysql数据库

本文详细介绍如何在Ubuntu 10.10环境下使用Qt连接MySQL数据库,包括安装必要组件、配置驱动、编译安装及编程实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用C语言连了mysql数据库,因为项目毕竟是用QT包装的,还需要在qt的界面里显示,所以这一次就用QT来连一下mysql。

首先说一下我的电脑是ubuntu10.10;之前安装了QT的linux全部套件(包括qtcreator),也安装了嵌入式qt的那三个编译环境(X11,X86,ARM),但是这一次我只用qtcreatot里的qmake编译(以为之前编译完那三个环境后,我就把编译文件夹全删了)。

首先,安装mysql客户端(mysql-devel),和C语言连接一样,执行命令:

 

sudo apt-get install libmysqlclient-dev

sudo apt-get install libmysqlclient15-dev

 

因为我之前安装过,所以这一步就省略了。

然后,连接mysql数据库肯定要有驱动,这个在qt的源码里就有:进入文件夹:

cd   QTDIR/src/plugins/sqldrivers/mysql                       这就是qt存放mysql驱动源码的目录

 

目录里应该有main.cpp 和moc_qsql_mysql.cpp两个文件

执行命令:

qmake  -project                                 生成mysql.pro文件,可能这一步会说你没有权限,那么chmod给它权限就可以了

qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro 

 

/usr/include/mysql    mysql所有头文件所在的位置,mysql.h就在此处

/usr/lib/mysql            mysql库的位置

然后,执行命令:

make

sudo make install

此时,在QTDIR/src/plugins/sqldrivers/mysql  这个目录下,就生成了一个文件:libqsqlmysql.so;把它拷贝到QTDIR/plugins/sqldrivers, 目录下面;

现在开始编程:

随便建工程:

加入如下代码:

 

#include <QtSql>
#include <QMessageBox>
#include <QTextStream>

QTextStream out(stdout);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("xxxxxx");
    if(!db.open())
    {
        QMessageBox::critical(0,QObject::tr("Database Error"),db.lastError().text());
        return a.exec();
    }
    QSqlQuery query;
    query.exec("SELECT * FROM t_homedata");
    while(query.next())
    {
        QString id = query.value(0).toString();
        QString type = query.value(1).toString();
        QString data = query.value(2).toString();
        out << id << ", " << type << ", " << data <<endl;
    }

 

 注意,这段代码,是我加入到工程中的,恩,我就放在main.cpp里;#include <QtSql>这个是必须的;#include <QTextStream>这个是用来进行控制台打印输出的,我的数据库名为test,中间有一个表叫

t_homedata,表里有三个varchar型字段:

其打印结果为:

 

 写道
100010, 23, 32.45
100011, 12, 99
100012, 11, 35.10

 

 注意,再进行工程的编译和运行之前(恩,因为我的电脑里实际有4个qt编译环境,所以还需要再qtcreator的project选项里设置该项目的编译器,我的编译器设置为qt-opensource,即qtcreator自带的,因为我之前所进行的mysql驱动编译也都是再qtcreator的安装目录里进行的),一定别忘了在工程的.pro文件里加上下面一行:

QT  += sql

恩,qt 帮助文档里就是这么说的:

To include the definitions of the module's classes, use the following directive:

 #include <QtSql>

To link against the module, add this line to your qmake .pro file:

 QT += sql

 

 

 

 

 

 

<think>好的,用户的问题是“如何在Linux中为Qt配置MySQL数据库驱动”。我需要根据提供的引用内容来回答这个问题。首先,引用[1]提到Qt默认不搭载MySQL驱动,需要手动编译。引用[2]详细说明了在Windows下配置MySQL驱动的步骤,但用户问的是Linux环境,所以需要转换思路。引用[3]是关于解压MySQL到特定目录的步骤,可能在Linux下安装MySQL开发库时会用到。引用[4]提到Arm-linux系统上的命令和普通Linux类似,所以步骤应该通用。 首先,用户需要确认是否已安装MySQL的开发库。在Linux中,可能需要通过包管理器安装libmysqlclient-dev或者类似的包。例如,在Ubuntu上使用sudo apt-get install libmysqlclient-dev。接下来,需要找到Qt的源码目录,通常在安装路径下的Src文件夹中,如/opt/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql。进入该目录后,编辑mysql.pro文件,添加INCLUDEPATH和LIBS指向MySQL的头文件和库文件路径。然后使用qmake和make进行编译,完成后将生成的驱动文件复制到Qt的插件目录。最后,在Qt项目中测试驱动是否加载成功,可能需要设置库路径。需要提醒用户注意路径是否正确,以及编译工具是否安装,比如g++和make。可能还需要处理动态库依赖,使用ldconfig或设置LD_LIBRARY_PATH。总结步骤,确保用户能逐步操作,并检查常见问题。</think>在Linux环境下为Qt配置MySQL数据库驱动的步骤如下: ### 一、安装MySQL开发库 1. 通过包管理器安装MySQL客户端开发包: ```bash # Ubuntu/Debian sudo apt-get install libmysqlclient-dev # CentOS/RHEL sudo yum install mysql-community-devel ``` 该步骤提供编译驱动所需的头文件和动态链接库[^3]。 ### 二、定位Qt源码目录 进入Qt安装目录下的驱动源码位置: ```bash cd /opt/Qt/5.15.2/Src/qtbase/src/plugins/sqldrivers/mysql ``` (注意将路径中的`5.15.2`替换为实际Qt版本号) ### 三、配置驱动编译环境 1. 使用文本编辑器修改`mysql.pro`文件: ```makefile # 添加MySQL头文件路径 INCLUDEPATH += /usr/include/mysql # 添加MySQL库文件路径 LIBS += -L/usr/lib/x86_64-linux-gnu -lmysqlclient # 设置输出目录 DESTDIR = ../../mysql-build ``` ### 四、编译驱动 1. 生成Makefile: ```bash qmake ``` 2. 执行编译: ```bash make ``` 成功后会在`mysql-build`目录生成`libqsqlmysql.so`驱动文件[^2]。 ### 五、部署驱动 1. 复制编译好的驱动到Qt插件目录: ```bash sudo cp libqsqlmysql.so /opt/Qt/5.15.2/gcc_64/plugins/sqldrivers/ ``` 2. 设置动态库路径: ```bash export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH ``` ### 六、验证驱动 在Qt代码中添加测试语句: ```cpp qDebug() << QSqlDatabase::drivers(); // 应输出包含"QMYSQL" ``` ### 常见问题处理 1. 若出现`libmysqlclient.so not found`错误: ```bash # 查找库文件位置 sudo find / -name libmysqlclient.so* # 创建符号链接 sudo ln -s /path/to/libmysqlclient.so /usr/lib/ # 更新动态链接库缓存 sudo ldconfig ``` 2. 交叉编译时需确保: - MySQL开发库的架构与目标平台一致 - 使用对应平台的qmake进行编译[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值