一、所用软件
(一)主要:
1、Qt creator community(qt官网下载)
2、mysql8.0.27(64位)
3、Visual studio 2019 community(64位)
(二)次要:
HeidiSQL(数据库管理软件)
二、安装软件
(一)Qt creator
QT官网下载安装器https://d13lb3tujbc8s0.cloudfront.net/onlineinstallers/qt-unified-windows-x86-4.2.0-online.exe
没有账号的需要注册一个,我选择Qt 5.15.2并勾选qt对应vc2019 64位的预编译部件,为了方便也可以都勾上,然后还安装了"developer and designer tools "里面的部分内容,其中"openSSL" 我不选,就无法连接mysql8.0.27。
(二)mysql
官网下载链接
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-winx64.zip
1、删除老版本
之前安装过mysql的,先删除服务。cmd管理员模式输入:sc delete mysql 如服务还在启动中,不能删除的,先输入:net stop mysql 然后进入注册表删除mysql原版本的信息,如果是安装版本的mysql直接在程序里卸载。
2、配置mysql
解压后,不需要在mysql目录里面新建 .ini 后缀的配置文件,直接用管理员启动cmd进行配置
Step1:切换到mysql的bin目录下 输入:mysqld --initialize --console 进行初始化,并记录生成的随机密码(不加--console不显示密码)。
Step2:安装mysql服务 输入:mysqld --install mysql
Step3:启动服务 输入:net start mysql
Step4:登录数据库 输入:mysql -u root -p 然后输入之前的随机密码
Step5:修改密码 输入:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 更新密码
关于修改加密规则的原因:主要是新的加密规则在用数据库管理软件登录时报错的情况
修改方法和原因援引:配置mysql8.0.27教程以及注意事项_qq_54653731的博客-CSDN博客
(三)Visual Studio2019 community
下载安装后(官方社区版本目前已更新到2022),安装qt的插件 Qt Visual Studio Tools,并在 QT
version 中指定路径和名称。
三、配置Qt 连接mysql的驱动
Step1:修改mysql.pro、qsqldriverbase.pri文件
打开QT 源码目录下的mysql 项目,在 .\Qt\5.15.2(版本号)\Src\qtbase\src\plugins\sqldrivers\mysql 目录 修改mysql.pro内容
注释掉:QMAKE_USE += mysql
在任意位置添加:
INCLUDEPATH += "mysql目录下的\include"
LIBS+="mysql目录下的\lib\libmysql.lib"
DESTDIR = ../mysql/lib (即放置生成的驱动dll文件位置)
修改或注释 qsqldriverbase.pri 文件中语句:include($$shadowed($$PWD)/qtsqldrivers-config.pri
(shadow和pwd前2个美元符号无法显示出来)
改为或添加:include(./configure.pri)
Step2: 构建 mysql 项目
用Qt creator 或 qt 5.15.2的命令处理工具来构建mysql项目即可生成如下的库lib和动态链接dll
qsqlmysql.dll、qsqlmysql.lib、qsqlmysqld.dll、qsqlmysqld.lib(libmysqld.dll 对应的debug模式)
Step 3:配置驱动dll文件位置
把qsqlmysql.dll、qsqlmysqld.dll文件拷贝到: .\Qt\5.15.2\msvc2019_64\plugins\sqldrivers 文件夹下
将mysql数据库目录下的libmysql.dll放置到.\Qt\5.15.2\msvc2019_64\bin目录下四、你的项目连接
1、项目debug构建后,先不要启动,进入你的Qt目录下的OpenSSL文件夹内的找到如下:libcrypto-1_1-x64.dll、libssl-1_1-x64.dll放到debug目录下,启动并成功连接。
2、windeployqt.exe 打包的项目连接MySQL:
libcrypto-1_1-x64.dll、libssl-1_1-x64.dll、libmysql.dll 和项目可执行文件放在同一目录
qsqlmysql.dll 放在项目的sqldrivers目录下
启动可执行文件并成功连接。
总结:版本要对应都是64位,qt creator安装时尽量都选上,容错率高,具体连接需要哪些dll,可以自己做排除法或通过dependency等工具确认依赖的链接文件。