【QTMysql】MySQL安装及QT连接MySQL驱动编译操作步骤
链接地址:【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 = 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 版本数据库驱动编译
?
?
如有不足之处,还望指正 。
如果对您有帮助可以点赞、收藏、关注,将会是我最大的动力