麒麟 qt 使用mysql_中标麒麟+Qt+mysql解决驱动无法加载的问题

本文介绍了在使用Qt进行数据库操作时遇到无法连接Mysql的问题,并详细记录了解决过程。从检查Qt提供的动态库到安装Mysql环境及动态库的具体步骤,最终实现了Qt与Mysql的正常连接。

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

问题描述:都安装了Qt,Mysql之后,发现Qt始终不能连接Mysql

1、安装Qt

2、写程序直接连接QMysql

打印QSqlDatabase: * driver not loaded ,进入../Qt/gcc_64_/plug/sql/,发现有mysql的so,这是Qt提供给我们的动态库,我们通过这个动态库增删改查数据库,具体的实现,是在这个so里调用了Mysql的so..

3、ldd Qt的动态库

发现libmysqlclient.so.18(QMysql的so)not found,说明没有Mysql的环境

4、安装Mysql的动态库

我试了两个方式:

直接全部安装Mysql,运行程序打印mysql_server_init符号没有,此时libmysqlclient.so.18已经没有打印not found,说明找到了的;

安装mysql-devel,打印没有这个可用包,

1.yum -y install wget2.wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

3. rpm -ivh mysql-community-release-el7-5.noarch.rpm4.yum install mysql-devel

保险起见:

yum install mysql*

<think>好的,用户想在麒麟服务器上配置QtMySQL驱动。首先,我需要回忆一下麒麟系统的背景。麒麟是中国自主研发的基于Linux的操作系统,常用于服务器环境,可能基于Ubuntu或CentOS,所以需要确定用户的具体版本,但用户可能没有说明,所以得考虑通用步骤。 接下来,Qt连接MySQL需要两个主要部分:MySQL客户端库和QtMySQL插件。用户可能已经安装了Qt,但缺少对应的驱动。常见的步骤包括安装MySQL开发包,编译QtMySQL插件,然后配置Qt项目使用驱动。 根据引用资料,比如引用[2]提到需要编译mysql的动态链接库,而引用[3]涉及源码安装MySQLQt连接。可能需要先确保MySQL的客户端库存在,比如libmysqlclient.so。麒麟系统可能使用apt或yum包管理器,所以安装mysql-client或mysql-devel之类的包。 然后,编译QtMySQL驱动。通常,Qt源码中有mysql的插件源码,需要进入qtbase/src/plugins/sqldrivers/mysql目录,用qmake生成Makefile,然后make。但需要确保qmake的路径正确,并且MySQL的头文件和库路径正确配置。例如,在qmake命令中添加INCLUDEPATH和LIBS的路径,如引用[2]中的步骤。 可能遇到的问题包括找不到mysql.h头文件,这需要安装MySQL的开发包,或者在编译时指定正确的路径。另外,如果麒麟系统的架构不同,比如是ARM架构,可能需要从源码编译MySQL客户端库,如引用[3]提到的源码安装MySQL的情况。 用户的问题也可能涉及驱动加载失败,这时需要检查生成的插件文件是否在Qt的plugins/sqldrivers目录下,或者设置LD_LIBRARY_PATH环境变量指向MySQL的库路径。此外,Qt版本和MySQL版本的兼容性也很重要,比如MySQL 8.0可能需要使用caching_sha2_password插件,导致连接问题,可能需要更改用户的认证方式,如引用[3]中的配置。 最后,测试驱动是否正常,可以用QSqlDatabase::drivers()查看是否有QMYSQL,并尝试连接数据库。需要提醒用户注意权限和依赖项的问题,以及在项目文件中添加sql模块。</think>### 麒麟服务器上配置 Qt MySQL 驱动的步骤 #### 1. **确认系统环境和依赖** - **麒麟系统版本**:麒麟服务器通常基于 Ubuntu 或 CentOS 衍生版本。需确认系统包管理器类型(`apt` 或 `yum`),例如: ```bash cat /etc/os-release # 查看系统信息 ``` - **安装 MySQL 客户端开发包**: - Ubuntu/Debian 系: ```bash sudo apt-get install libmysqlclient-dev # 包含头文件和动态库[^2][^3] ``` - CentOS/RHEL 系: ```bash sudo yum install mysql-devel ``` #### 2. **编译 Qt MySQL 驱动** QtMySQL 驱动需基于 MySQL 客户端库编译生成动态插件。 ```bash # 进入 Qt 源码的驱动目录(假设 Qt 安装路径为 /opt/Qt5.14.2) cd /opt/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers # 使用 qmake 生成 Makefile(需指定 MySQL 头文件和库路径) qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib64/mysql -lmysqlclient" -- MYSQL_PREFIX=/usr # 编译并安装驱动 make sudo make install # 生成的驱动文件会复制到 Qt 的 plugins/sqldrivers 目录[^2] ``` #### 3. **验证驱动加载** 在 Qt 项目中添加以下代码检查驱动是否可用: ```cpp #include <QSqlDatabase> qDebug() << QSqlDatabase::drivers(); // 输出应包含 "QMYSQL" ``` #### 4. **配置项目文件(.pro)** 确保项目文件包含 SQL 模块和库路径: ```pro QT += sql LIBS += -L/usr/lib64/mysql -lmysqlclient ``` #### 5. **解决常见问题** - **驱动加载失败**: - 检查 `libqsqlmysql.so` 是否存在于 `Qt/plugins/sqldrivers`。 - 设置环境变量: ```bash export LD_LIBRARY_PATH=/usr/lib64/mysql:$LD_LIBRARY_PATH ``` - **MySQL 8.0 认证问题**: 修改 MySQL 用户密码插件(在 MySQL 服务端执行): ```sql ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password'; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值