QT5.15.2 连接MySQL 驱动问题解决方案,无论菜鸟️照旧老鸟,解决了就是好鸟 ...

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

最近在学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软件部落 公众号,你可以了解更详细的内容


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表