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位编译做启用注释即可):

上面引用 了  include(../qsqldriverbase.pri)  ,这个文件也要改一下qsqldriverbase.pri

 

文件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

 

另外 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 

 

上述完成了,重启QT,再打开项目进行测试即可.

祝你好运! 

 

关注公众号看更多内容

欢迎微信搜一搜 IT软件部落 关注公众号,你可以了解更详细的内容 

欢儿微信扫码关注 IT软件部落 公众号,你可以了解更详细的内容

posted on 2024-11-20 14:01  bluejade2024  阅读(119)  评论(0编辑  收藏  举报

导航