鏈接地址:【QTMysql】MySQL安裝及QT連接MySQL驅動編譯操作步驟
MySQL安裝
1、下載
MySQL官網: https://dev.mysql.com/downloads/mysql/.
下載安裝包時,需要根據自身需求選擇x86(win32)或win64
MySQL版本的選擇及對應,MySQL 7因為功能齊全,是普遍使用最多的版本,我下載的是mysql-5.7.30-winx64.zip,需要自行初始化安裝
MySQL 5.5 | MySQL 5 |
---|---|
MySQL 5.6 | MySQL 6 |
MySQL 5.7 | MySQL 7 |
MySQL 8.0 | MySQL 9 |
2、解壓
原始的目錄結構下的文件如下所示
3、添加環境變量
將bin目錄添加,環境變量->path
4、創建my.ini文件及data文件夾
data文件夾為空,不添加任何東西
創建my.txt,將.txt改為.ini,修改my.ini文件,加入一下內容
[mysqld]
# 設置服務端口為3306
port=3306
# 設置mysql的安裝目錄,注意目錄需要使用\\連接
basedir=D:\mysql-5.7.30-winx64
# 設置mysql數據庫的數據的存放目錄,注意目錄需要使用\\連接
datadir=D:\mysql-5.7.30-winx64\data
# 允許最大連接數
max_connections=200
# 允許連接失敗的次數。這是為了防止有人從該主機試圖攻擊數據庫系統
max_connect_errors=10000
# 服務端使用的字符集默認為UTF8
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用“mysql_native_password”插件認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[client]
# 設置mysql客戶端連接服務端時默認使用的端口
port=3306
default-character-set=utf8
5、命令提示符初始化MySQL及修改密碼
管理員模式打開命令提示符,進入bin目錄
輸入 mysqld --initialize --console
初始化MySQL,並將初始化信息打印在控制台
記住初始化的MySQL密碼,若后面記不住而出錯,可以返回清空data文件夾的內容,再來一次
輸入 mysqld --install mysql5.7-64
安裝MySQL,並將其命名為mysql5.7-64,若不命名,默認名稱為MySQL
輸入 net start mysql5.7-64
啟動mysql服務
輸入 mysql -h localhost -u root -p
打開mysql5.7-64數據庫,輸入初始化時的密碼
輸入 set password for root@localhost = password ('0820');
修改mysql5.7-64數據庫密碼為0820
輸入 quit;
關閉mysql5.7-64數據庫
6、完成
至此成功安裝MySQL |
QT連接MySQL
1、修改 mysql.pro 文件
打開 Qt 的安裝目錄的 mysql 驅動所在夾,在我這里驅動源碼目錄在
E:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql,其目錄結構下的文件如下所示:
修改 mysql.pro 文件,修改如下
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
//注釋掉以免編譯報錯
//QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
//MySQL安裝路徑中的include夾的路徑
INCLUDEPATH +="D:/mysql-5.7.30-winx64/include"
//MySQL安裝路徑中的lib夾下的libmysql.dll庫文件
LIBS +="D:/mysql-5.7.30-winx64/lib/libmysql.lib"
//定義lib生成文件保存位置
DESTDIR = E:/Qt/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/mysql/mysqllib
2、編譯 MainGW 版驅動
雙擊 mysql.pro 讓它在 Qt Creator 編譯器中打開,選擇MinGW 64-bit,點擊錘子進行構建
構建完成后,我們可以在
E:\Qt\Qt5.13.1\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql
目錄下查看,構建結果,出現 mysqllib文件夾,到此驅動構建完畢
打開mysqllib文件夾,下一步將驅動下圖的兩個 dll 文件復制到,mingw73_64/plugins/ sqldrivers 目錄下面,如下圖所示。
復制 MySQL 安裝目錄下的庫文件(D:\mysql-5.7.30-winx64\lib)中的:libmysql.dll 到 mingw73_64\bin 目錄下,復制結果如下圖所示。
3、創建測試項目
使用 Qt Creator 創建Qt Console Application,構建一個項目來測試一些是否可以正常鏈接數據庫,測試代碼如下
test.pro文件添加 QT +=sql
main.cpp文件
#include <QtCore>
#include <QtSql>
int main(int argc, char *argv[])
{
QCoreApplication a( argc , argv);
//打印支持驅動信息
qDebug()<<QSqlDatabase::drivers();
//創建 MySQL 數據庫
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
//連接數據庫
db.setHostName("localhost"); //數據庫服務器 IP
db.setPort(3306);
db.setUserName("root"); //數據庫用戶名
db.setPassword("0820"); //密碼
db.setDatabaseName("stums"); //使用哪個數據庫
if (!db.open())
{
qDebug()<<db.lastError().text();
}
else
{
qDebug()<<"遠程數據庫連接成功!";
}
return a.exec();
}
然后執行項目,注意此時我們選擇的編譯組件仍然選擇MinGW 64-bit,如下圖所示
點擊運行如果得到如下圖所示的結果,表示已經完成了 MaingW 版本數據庫驅動編譯
如有不足之處,還望指正 [1]。
如果對您有幫助可以點贊、收藏、關注,將會是我最大的動力 ↩︎