Qt 5.6+MySQL5.7.18

来源:互联网 发布:免费私有云软件 编辑:程序博客网 时间:2024/06/06 03:30
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文件(也可手动添加data文件夹),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),执行完后,上不操作没有手动添加data文件夹的这一步可自动添加。

安装:          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('你的密码 '); 
 
结束!

安装成功

Qt 5.6+MySQL5.7.18 - qfoxes - qfoxes的博客

2.2 安装Qt

安装的时候一定选择源码安装,这样C:\Qt\5.6下才有src文件夹
Qt 5.6+MySQL5.7.18 - qfoxes - qfoxes的博客
 
生成Makefilel文件
输入:cd C:\Qt\5.6\Src\qtbase\src\plugins\sqldrivers\mysql
           qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\libmysql.lib" -o Makefile mysql.pro
这样会产生三个Makefilel文件,如下图,
Qt 5.6+MySQL5.7.18 - qfoxes - qfoxes的博客
 
 
用记事本打开mysql.pro,看有没有多出下面两行
          INCLUDEPATH+="C:/MySQL/include"
          LIBS+="C:/MySQL/lib/libmysql.lib"
没有的话手动添加。

Qt 5.6+MySQL5.7.18 - qfoxes - qfoxes的博客
 
接下来就是重点了,网上有教程使用visual studio命令提示符进行编译,这里使用mingw编译器进行编译,(如果是msvc的编译器是可以的,但是用mingw编译器),因为需要用到reimp命令,所以需要下载 mingw -utils,并把它解压后的bin目录里的内容拷贝到mingw的bin目录下。

mingw-utils 下载mingw_utils下载地址http://www.qtcn.org/download/mingw-utils-0.3.tar.gz
然后
           cd C:\MySQL\lib
          reimp -d libmysql.lib
          dlltool -k -d libmysql.def -l libmysql.a
就会发现在lib文件夹下多出libmysql.a和libmysql.def
Qt 5.6+MySQL5.7.18 - qfoxes - qfoxes的博客
 
然后使用qmake和make命令编译
cd C:\Qt\5.6\Src\qtbase\src\plugins\sqldrivers\mysql

qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=-LC:\MySQL\lib\ -lmysql" mysql.pro


mingw32-make


mingw32-make install

mingw32-make默认似乎是编译debug项目,编译产生了debug版的qsqlmysqld4.dll文件。我们还需要release项目编译产生的qsqlmysql4.dll文件,所以继续编译:


mingw32-make -f Makefile.Release


mingw32-make -f Makefile.Release install

最后,把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

原创粉丝点击