Windows下QT 5.1.1连接MySQL 5.6数据库步骤 [亲试成功]

来源:互联网 发布:pdm 软件 编辑:程序博客网 时间:2024/06/07 00:51

Windows下QT5.1.1连接MySQL 5.6数据库步骤

系统版本为为windows7 32位,QT版本为QT5.1.1,MySQL版本为Mysql 5.6

一、安装配置MySQL

1. 进入网页 http://dev.mysql.com/downloads/installer/5.6.html,下载MySQL GA版本,MySQL Installer 5.6.15,Windows (x86, 32-bit), MSI Installer。

2. 安装MySQL需要系统中已经安装有.netframework,若系统中未安装.net framework,在百度搜索.net framework,进入微软下载中心下载.net framework 4.0,并安装。

3. 安装“mysql-installer-web-community-5.6.15.0”,安装类型选择完全安装,安装路径选择“C:\MySQL\”,安装路径中不能有空格。

4. 把“C:\MySQL\MySQLServer 5.6\bin”添加到系统环境变量path中,后面会在cmd中用到其中的mysql命令。

5. 用QT源码编译MySQL驱动需要用到MySQLServer安装路径下的lib和include两个文件夹,但MySQL Server安装路径有空格,所以在D盘新建mysql文件夹,把这两个文件夹复制到“D:\mysql\”目录下。

二、安装配置QT

     1. 下载QT:进入网页 http://qt-project.org/downloads ,下载“Qt5.1.1 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB) ”。

     2. 安装QT:安装路径选择“C:\Qt\Qt5.1.1”,路径中不能有空格;在组件选择中选择全部安装;其余选项选择默认。

     3. 配置QT:将路径“C:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin”和“C:\Qt\Qt5.1.1\Tools\mingw48_32\bin”添加进系统环境变量path中,前一个路径下有qmake命令,后一个路径下有mingw32-make命令。

三、利用QT源码编译MySQL驱动

     1. 以管理员身份运行cmd,进入路径“C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql”,输入命令qmake “INCLUDEPATH+=D:\mysql\include” “LIBS+=D:\mysql\lib\libmysql.lib” mysql.pro,若编译成功,会在该目录下生成Makefile文件,输入命令mingw32-make命令编译Makefile,若编译成功,会在“C:\Qt\Qt5.1.1\5.1.1\Src\qtbase\plugins\sqldrivers”下生成4个mysql驱动文件libqsqlmysql.a,libqsqlmysqld.a,qsqlmysql.dll,qsqlmysqld.dll,将生成的4个Mysql驱动文件复制到“C:\Qt\Qt5.1.1\5.1.1\mingw48_32\plugins\sqldrivers”下。

     2. 将目录“D:\mysql\lib”下的libmysql.dll文件复制到目录” C:\Qt\Qt5.1.1\5.1.1\mingw48_32\bin”下,否则连接数据库时会报”QMYSQL driver not loaded”错误

四、连接测试

1. 以管理员身份运行cmd,执行mysql –uroot–p,输入mysql数据库密码,进入mysql数据库命令行操作界面,输入create database qtmysqlcontest;创建一个名为qtmysqlcontest的数据库。

2. 点击按钮,执行下面代码,若连接数据库成功,会返回“success”,若连接失败,会返回”failure”。

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");    db.setPort(3306);    db.setDatabaseName("qtmysqlcontest");    db.setUserName("root");    db.setPassword("1234");    if (!db.open()) {        QMessageBox::warning(this, "warning!", "failure");    } else {        QMessageBox::information(this, "OK", "success!");    }

原创粉丝点击