QT5.15.2 连接MySQL 驱动问题解决方案,无论菜鸟️照旧老鸟,解决了就是好鸟
最近在学QT,现在QT只能在线安装了,用了几天,看到数据库时,需要用MySQL,结果出现了问题。QSqlDatabase: QMYSQL driver not loaded、
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7、Sql connect failed、"Driver not loaded Driver not loaded"
网上找到很多资料,最终圆满解决,以下资料为本人亲自处理过程,现分享给大家!
一.假如连接时出现
“SSL connection error: protocol version mismatch QMYSQL: Unable to connect”
表现:高版本的客户端连接到低版本的MySql Server
解决方法: 服务器设置中 跳过 SSL
-----------------------------------------------------
例:MySql 安装的 5.7 Server
WINDOWS服务中找到 MySQL57--属性
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57
我们就要修改这个文件 C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 文件
编辑这个文件:在文件的尾部加上
# disable_ssl
skip_ssl
二.使用QT连接MySQL的过程中出现:
QSqlDatabase: QMYSQL driver not loaded、
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7、Sql connect failed、"Driver not loaded Driver not loaded"。
表现:没有驱动(或驱动不匹配)
解决方法:编译QT中的mysql驱动
例:(安装的QT中有这个项目)
D:\ProgramFiles\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
1).下载mysql-connector-c-6.1.11-win32.zip和mysql-connector-c-6.1.11-winx64.zip 驱动,官网上有。
解压到如:D:\Softwares\QT\MySql\mysql 和D:\Softwares\QT\MySql\mysql64
2).用QT打开项目: D:\ProgramFiles\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
mysql.pro修改如下(32,64位编译做启用注释即可):
https://img2024.cnblogs.com/blog/1103754/202411/1103754-20241120135307871-1686673073.png
上面引用 了 include(../qsqldriverbase.pri) ,这个文件也要改一下qsqldriverbase.pri
https://img2024.cnblogs.com/blog/1103754/202411/1103754-20241120135336462-762583744.png
文件1:qsqldriverbase.pri内容
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
文件2:mysql.pro内容
D:\ProgramFiles\Qt\5.15.2\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)
#针对 windows 32 位系统
# LIBS +=$$quote(D:/Softwares/QT/MySql/mysql/lib/libmysql.lib)
# INCLUDEPATH +=$$quote(D:/Softwares/QT/MySql/mysql/include)
# DEPENDPATH +=$$quote(D:/Softwares/QT/MySql/mysql/include)
# DESTDIR = d:/mysqllib
#针对 windows 64 位系统
LIBS +=$$quote(D:/Softwares/QT/MySql/mysql64/lib/libmysql.lib)
INCLUDEPATH +=$$quote(D:/Softwares/QT/MySql/mysql64/include)
DEPENDPATH +=$$quote(D:/Softwares/QT/MySql/mysql64/include)
DESTDIR = d:/mysqllib64
上面正常构建后D:\mysqllib 和D:\mysqllib64 下会天生文件
qsqlmysql.dll
qsqlmysql.dll.debug
32位的 由D:\mysqllib 复制到D:\ProgramFiles\Qt\5.15.2\mingw81_32\plugins\sqldrivers
62位的 由D:\mysqllib64 复制到D:\ProgramFiles\Qt\5.15.2\mingw81_64\plugins\sqldrivers
https://img2024.cnblogs.com/blog/1103754/202411/1103754-20241120135418192-1847198745.png
别的 libmysql.dll库文件也需要复制:
32位:
由D:\Softwares\QT\MySql\mysql\lib\libmysql.dll 复制到D:\ProgramFiles\Qt\5.15.2\mingw81_32\bin
62位:
由D:\Softwares\QT\MySql\mysql64\lib\libmysql.dll 复制到D:\ProgramFiles\Qt\5.15.2\mingw81_64\bin
https://img2024.cnblogs.com/blog/1103754/202411/1103754-20241120135446056-724543137.png
上述完成了,重启QT,再打开项目举行测试即可.
https://img2024.cnblogs.com/blog/1103754/202411/1103754-20241120135502124-2075417480.png
祝你好运!
关注公众号看更多内容
欢迎微信搜一搜 IT软件部落 关注公众号,你可以了解更详细的内容
https://img2024.cnblogs.com/blog/1103754/202410/1103754-20241027211531941-862695125.jpg
欢儿微信扫码关注 IT软件部落 公众号,你可以了解更详细的内容
https://img2024.cnblogs.com/blog/1103754/202410/1103754-20241027211540319-394205364.jpg
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]