这周要完成数据库课设,由于操作系统课设的时候用Qt做过一个任务管理器,深感Qt做的界面非常美观,所以想继续使用Qt。之前是在linux环境下安装的qt,又不涉及到mysql,安装非常之简单。今次是在win8下安装qt,在网上搜索了一番,没有找到win8下安装Qt的教程,很害怕兼容性方面会出现问题,不过做人总是要不断去尝试的,失败也是一次成长的经历啊,抱着这样一种心态,经过一个晚上各种无节操地试验,我最终取得了革命的胜利。鉴于过程非常艰辛曲折,所以想把其写成一个简单的教程,这样就可以让更多的人少走些弯路。(内容有参考win7环境下安装Qt+mysql的教程,综合了win8上遇到的问题,希望能使整个流程一气呵成,方便大家使用!)
1.安装Qt
这是安装的时候用到的各种安装文件,大家可以自行搜索完成下载。
我的安装路径 "F:\Qt"。
②安装完成之后,将文件夹中的MinGW-gcc4401_1.zip解压到安装Qt的根目录下,我把解压文件名改为“MinGW”(注意文件名不要使用空格和中文),这里我是解压到F盘,路径为“F:\MinGW”。
我的安装路径是“F:\Qt\4.8.2\”,不停按next,直到出现以下界面,通过浏览按钮将解压到F盘的MinGW文件夹填入路径中,按install进行安装。
④安装Qt完成之后,打开QCreator,点击tools--options--build&run。选择Qt version,点击add按钮,浏览进入路径为F:\Qt\4.8.2\bin\qmake.exe的文件夹,载入qmake.exe的程序,点击apply按钮,应用设置。(我在加载的时候,qmake.exe项前面会出现红色感叹号。若遇到相同问题,重新再加载一遍,红色感叹号即可消失)
继续设置Tools chains中的complier path,点击browse,路径为d:\MinGW\bin\mingw32-g++.exe,在上面的Manual会显示出MinGW即可。按ok完成设置。如下图所示:
2.安装mysql
打开mysql-5.5.15-win32.msi安装程序,安装的时候,选择中间一项---typical,才能自己选择安装路径。在安装中一定要注意安装的路径名中不要有中文,不包含空格,不然会导致后面的步骤无法进行。我的安装路径与Qt在同一根目录,为“F:\MySQL”。
mysql的安装很简单,路径中不能有空格是最重要的注意点。mysql-workbench-gpl-5.2.42-win32.msi是是mysql可视化的安装程序,看个人喜好,可以不安装。之后就可以进行最难搞的下一步了。
3.编译mysql驱动
编译mysql驱动,网上有介绍过两种方法,一种是手动修改文件,还有一种是qt命令行的方式,在实践中,我两种都尝试过,最后手动的方式成功了,而命令行的方式试过无数次,每次都会出现各种各样的问题,有时候,我的修改甚至无法写进文件里,导致后面的步骤都出错,所以此处我重点讲手动修改文件的方法。
①在我的电脑中,win8是不能直接通过界面修改环境变量的,所以这里提供一种dos下修改环境变量的方法。
打开dos界面,输入set path指令,你可以看到界面上所有的path环境变量的值。
输入命令set path=%path%;F:\MySQL\bin
set path=%path%;F:\MinGW\mingw\bin
set path=%path%;
set path=%path%;F:\Qt\qtcreator-2.5.0\bin
完成后, 再输入set path就可以看到改变好的环境变量了。
F:\Qt\4.8.2\src\plugins\sqldrivers\mysql,文件夹,用文本编辑器打开mysql.pro,直接在文件第二行出加入 INCLUDEPATH+="F:/MySQL/include" LIBS+="F:/MySQL/lib/libmysql.lib"并且保存。(注意,修改mysql.pro中的内容是用反斜线。)
F:\Qt\4.8.2\src\plugins\sqldrivers\mysql进入到此文件夹,先输入qmake “INCLUDEPATH+=F:\MySQL\include” “LIBS+=F:\MySQL\lib\libmysql.lib” mysql.pro,运行完成。
④再输入mingw32-make。可以发现F:\Qt\4.8.2\src\plugins\sqldrivers\mysql\debug中多了很多文件。
F:\Qt\4.8.2\src\plugins\sqldrivers\mysql\release中多了很多文件。
⑥libqsqlmysqld4.a,qsqlmysqld4.dll,libqsqlmysql4.a,qsqlmysql4.dll,从以上两个文件夹中将这四
个文件拷贝出来,放到
F:\Qt\4.8.2\plugins\sqldrivers
(注意,一定是放在这个文件夹里,不是这个路径F:\Qt\4.8.2\src\plugins\sqldrivers),
另外,还可以把libmysql.dll(这个库文件在mysql的文件夹里)复制到system32.这次重装系统,再装mysql+qt,遇到“一个错误”:
“QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC”
MySQL/lib目录下的libmySQL.dll文件复制到Qt安装目录下的D:\Qt\bin目录。
4.测试mysql驱动
进入qt,新建一个工程,在.pro文件中添加
QT += sql //这行一定要添加。
再在mainwindow.cpp中的函数进行相应的修改。
#include "ui_mainwindow.h"
#include <QtDebug>
#include <QSqlQuery>
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //添加数据库驱动
db.setUserName("root");//用户名
db.setPassword("按照自己创建的密码输入");
db.setHostName("localhost");
db.setDatabaseName("test");//数据库名,mysql里自带有一个数据库,就是test,也可以自己建立新的数据库测试。
db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");//使用SSL
db.setPort(3306);
if(db.open())
{
qDebug() <<"right";
}
}
最终会在调试屏幕下方发现有输出“right”,则驱动安装成功。至此整个步骤全部完成。