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('你的密碼 ');
結束!
安裝成功
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