前言

从MySQL驱动源码编译到Qt程序打包彻底解决Qt中使用MySQL数据库的大部分问题。

Qt连接MySQL数据库报错:QMYSQL driver not loaded 一般由Qt与MySQL驱动不匹配问题导致,通过重新编译MySQL驱动源码的方式重新生成匹配的驱动文件;以及打包后数据库连接失败往往是放入打包文件夹的数据库驱动不一致。

编译MySQL数据库

在编写正确MySQL连接配置后依然无法连接成功数据库,并且在控制台报如下错误:




mysql 数据打包 mysql怎么打包数据库_Powered by 金山文档


则说明需要重新编译数据库连接驱动。

常见在数据库版本更换,或Qt本身未提供连接驱动或提供的连接驱动不匹配等种种原因。

前提条件:

  1. 在安装Qt时勾选有源码,或可通过官方途径下载一份Qt源码。
  2. MySQL数据库,不想安装的可在官网下载对应版本的ZIP数据库压缩包版本。

版本说明:

  1. 查看Qt编译器版本,需要注意的是后面的位数,Qt编译器位数决定了编译出来的应用程序是32还是64位(少部分电脑只能运行32位程序)


mysql 数据打包 mysql怎么打包数据库_qt_02


  1. 数据库版本由当前项目决定,但数据库的位数需要与Qt编译器的一致。

以下操作中以不安装MySQL方式操作,若电脑安装有所需MySQL的,则只需将相关路径更换为MySQL安装路径即可。

在源码中打开MySQL项目,安装时勾选有源码的路径如下:(安装路径下)


mysql 数据打包 mysql怎么打包数据库_mysql 数据打包_03


使用Qt打开mysql.pro文件并修改该文件内容

  1. 在最后添加如下内容:其中MYSQL_PATH为MySQL的安装路径或下载的数据库压缩包解压后的路径。
  2. 注释掉第六行的#QMAKE_USE += mysql


mysql 数据打包 mysql怎么打包数据库_qt_04


选择对应位数和版本的MinGW编译器,并选择“Release”方式


mysql 数据打包 mysql怎么打包数据库_mysql 数据打包_05


点击左下角的“锤子”编译会在当前项目中生成一个文件夹


mysql 数据打包 mysql怎么打包数据库_mysql 数据打包_06


mysql 数据打包 mysql怎么打包数据库_mysql 数据打包_07


将步骤5中生成的3个文件拷贝到对应的MinGW版本和位数的此目录下


mysql 数据打包 mysql怎么打包数据库_数据库_08


将下载的数据库压缩包内或安装的数据库路径下的lib文件夹下的两个文件,拷贝到对应的编译器bin文件夹下。


mysql 数据打包 mysql怎么打包数据库_Powered by 金山文档_09


mysql 数据打包 mysql怎么打包数据库_qt_10


完成MySQL数据库驱动编译。

打包为独立的执行程序

在编译项目前选择对应的编译器,并选择“Release”点击运行。


mysql 数据打包 mysql怎么打包数据库_Powered by 金山文档_11


会在你的构建目录下生成文件


mysql 数据打包 mysql怎么打包数据库_qt_12


进入到该路径下的\release文件夹下找到.exe后缀的文件,并拷贝到一个空文件夹下。

在电脑中搜索“Qt”找到对应版本(对应编译时的版本及位数),对应位数的该程序并打开。


mysql 数据打包 mysql怎么打包数据库_Powered by 金山文档_13


在命令窗口中定位到步骤3中的空文件夹目录下,然后执行如下命令:

windeployqt ×××.exe

其中后面部分为目录下的程序文件。

将编译数据库操作中的步骤7所拷贝的两个文件中的.dll后缀的文件拷贝到当前步骤3中创建的文件夹中。

步骤3中的文件夹拷贝到需要运行的电脑中运行exe文件即可,完成。