1、下载
mysql-5.7.18-win32.zip 地址: https://dev.mysql.com/downloads/mysql/
qt-opensource-windows-x86-mingw492-5.6.2.exe
(可配置于win10 64位)
2、安装
2.1、安装mysql
将mysql解压到C:\MySQL,注意目录不要有空格,并手动添加my.ini文件(也可手动添加da ta文件夹),my.ini文件内容如下
[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port = 3306# 设置mysql的安装目录basedir=C:\MySQL# 设置mysql数据库的数据的存放目录datadir=C:\MySQL\data # 允许最大连接数max_connections=200# 服务端使用的字符集默认为8比特编码的latin1字符集character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB
注:basedir和datadir的地址根据自身情况设置。
选择系统变量Path,编辑添加C:\MySQL\bin
或 点击系统变量下的新建按钮
输入变量名:MYSQL_HOME
输入变量值:C:\MySQL
选择系统变量中的Path ,点击编辑按钮
在变量值中添加变量值:%MYSQL_HOME%\bin (需要注意的是要在原有变量值后面用 ; 隔开,不能删除原来的变量值)
以管理员身份运行cmd,
初始化数据库: mysqld --initialize --user=mysql --console
初始化结果中最后一行有分配的密码(例如会出现root@localhost: VESEA5ZVc2.i),执行完后,上不操作没有手动添加da ta文件夹的这一步可自动添加。
安装: mysqld --install MySQL
(重新安装的时候可能会出现提示:Install/Remove of the service denied!(服务安装被拒绝),输入sc delete MySQL 命令删除服务,然后进行启动mysql)
启动 : net start MySQL
OK,启动成功
登陆mysql: mysql -u root -p
密码就是上面所说的密码
修改密码:set password for root@localhost=password('你的密码 ');
结束!
安装成功
2.2 安装Qt
安装的时候一定选择源码安装,这样C:\Qt\5.6下才有src文件夹
生成Makefilel文件
输入:cd C:\Qt\5.6\Src\qtbase\src\plugins\sqldrivers\mysqlqmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\libmysql.lib" -o Makefile mysql.pro这样会产生三个Makefilel文件,如下图,
用记事本打开mysql.pro,看有没有多出下面两行
INCLUDEPATH+="C:/MySQL/include"
LIBS+="C:/MySQL/lib/libmysql.lib"
没有的话手动添加。
接下来就是重点了,网上有教程使用visual studio命令提示符进行编译,这里使用mingw编译器进行编译,(如果是msvc的编译器是可以的,但是用mingw编译器),因为需要用到reimp命令,所以需要下载 mingw -utils,并把它解压后的bin目录里的内容拷贝到mingw的bin目录下。
然后
cd C:\MySQL\lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
就会发现在lib文件夹下多出libmysql.a和libmysql.def
然后使用qmake和make命令编译
cd C:\Qt\5.6\Src\qtbase\src\plugins\sqldrivers\mysql
最后,把C:\MySQL\lib\libmysql.dll复制到C:\Windws\System32下
OK!!
测试:
在工程文件下添加 QT += sql
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QtSql>
#include<QSqlDatabase>
#include<QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
}
MainWindow::~MainWindow()
{
delete ui;
}
结果:
Available drivers:
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"
End
参考:1、http://llydmissile.blog.51cto.com/7784666/1280170
2、http://blog.csdn.net/pp634077956/article/details/51093554