Ubuntu Linux下使用Qt连接MySQL数据库的方法

周末不加班
周末不加班
发布时间:2026-10-16 | 4人浏览过
原创

在Ubuntu系统中开发Qt应用时,连接MySQL数据库是常见需求。本文通过安装MySQL服务端、配置Qt SQL驱动库及编写基础测试代码三个步骤,提供完整的本地环境搭建与连接方案。

环境准备与MySQL安装

首先需要确保Ubuntu系统已安装MySQL服务。对于桌面版Ubuntu,最简单的方式是通过软件中心或终端安装客户端与服务端:

  1. 打开软件中心搜索mysql,勾选client和server进行安装。
    或者使用终端命令:sudo apt-get install mysql-server mysql-client
  2. 安装过程中会提示为root用户设置密码,请务必牢记该密码。

默认情况下,直接使用mysql命令可能会因当前Linux用户名无数据库权限而报错(如ERROR 1045)。若需添加普通用户供程序调用,可登录root后执行授权操作:

mysql -uroot -p
grant usage on *.* to dummy@localhost identified by 'your_password';

注意:此操作仅为赋予登录权限,创建数据库等操作仍需管理员权限或更高权限账号。

部署Qt的MySQL驱动

Qt需要通过插件形式加载MySQL驱动。以下提供两种常用的部署方式:

第1步:预编译驱动安装法(推荐)

这是最快捷的方法,直接安装系统提供的Qt MySQL SQL插件包:

执行命令:sudo apt-get install libqt4-sql-mysql

安装完成后,找到生成的动态链接库文件libqsqlmysql.so。通常位于:/usr/lib/qt4/plugins/sqldrivers/

需要将该文件拷贝到当前Qt项目使用的SDK目录下的对应位置。例如,若使用QtSDK Desktop GCC版本,目标路径通常为:
~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers/

第2步:手动下载解压法

如果不想自动安装额外依赖,可以仅下载该包的deb文件并提取so库:

1. 执行:sudo apt-get download libqt4-sql-mysql
2. 解压下载的deb包,从中找出libqsqlmysql.so。
3. 将其拷贝至上述Qt SDK对应的sqldrivers目录中。

注意:自行从源码编译驱动在新版本QtSDK中较为困难,因为官方安装包通常不包含src目录且未默认包含MySQL源,故不建议初学者尝试。

编写连接测试代码

在确认驱动文件就位后,需要在Qt项目中启用SQL模块并编写连接逻辑。

第3步:配置项目文件

打开项目的.pro文件,确保在QT变量中添加了sql模块:

QT += core gui sql

保存后重新运行qmake(Build → Run qmake)以更新构建系统。

第4步:编写C++连接代码

新建一个控制台应用程序或使用现有项目,引入必要的头文件并初始化连接。以下代码演示了使用QSqlDatabase建立本地连接:

#include <QtCore/QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

// 添加MySQL驱动实例
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

// 设置连接参数
db.setHostName("localhost");
db.setDatabaseName("study"); // 请替换为实际存在的数据库名
db.setUserName("root"); // 请替换为实际用户名
db.setPassword("tyh"); // 请替换为实际密码

// 尝试打开连接
if(!db.open()){
qDebug() << "Unable to open database";
} else {
qDebug() << "Database connection established";
}

return a.exec();
}

常见问题排错

  • 错误日志显示“Unable to open database”:
    首先检查libqsqlmysql.so是否已成功复制到Qt的plugins目录下。其次,确保MySQL服务正在运行(可通过sudo service mysql status查看)。最后,核对代码中的主机名、数据库名、用户名和密码是否正确。
  • 缺少相关依赖库:
    如果在运行时提示找不到特定共享库,可能需要安装libmysqlclient-dev等底层开发库。
  • 权限不足:
    如果使用的是非root用户连接,请确保该用户在MySQL中具有对指定数据库的操作权限。

以上就是在Ubuntu Linux环境下使用Qt连接MySQL数据库的详细内容,更多关于Qt SQL编程的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表