最近想写一个Qt 小程序,在连接Mysql 数据库的时候,遇见了许多问题,第一个问题就是连接Mysql 的时候出现驱动未加载的问题,下面开始记录:
- 我用的是编辑器是Qt自带的Qt Creator,Qt 版本为5.12.8。在连接Mysql 的时候先出现驱动程序未加载,于是到“D:\Qt\Qt5.12.9\5.12.9\mingw73_64\plugins\sqldrivers” 这个文件夹里看,发现没有qsqlmysql.dll 和qsqlmysqld.dll 这两个dll 文件,qt 这个版本应该是把这两个文件取消了,那怎么办呢,只有想办法去编译了。
- 要去编译这两个dll,就要去qt的mysql 源码去编译,在qt 目录下找到“D:\Qt\Qt5.12.9\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql”文件夹,打开发现里面有个mysql.pro 双击打开就行了。(注:如果找不到这个Src 这个文件夹,是因为你在安装qt 的时候,没有把源码选上,修改下qt 安装,把源码选上就行了)
- 打开mysql.pro 后,mysql 源码项目就被打开了,
打开mysql.pro,注释QMAKE_USE += mysql
,添加INCLUDEPATH += "D:\Program Files\mysql-connector-c-6.1.11-winx64\include"
和LIBS += "D:\Program Files\mysql-connector-c-6.1.11-winx64\lib\libmysql.dll"
,这两个文件地址改成你们的,就是你们mysql 的安装目录,这里说一下,我用我mysql安装目录下的这两个地址,编译出来的那两个dll 文件不可以用,不知道为什么,于是我又去下载了connector/c,下载的压缩包,把他解压到一个地方,用里面的两个路径地址就可以。mysql.pro里添加完后,找到qsqldriverbase\qsqldriverbase.pri 这个文件,注释include($$shadowed($$PWD)/qtsqldrivers-config.pri)
添加include($$shadowed($$PWD)/configure.pri)
- 修改好后,点击锤子按钮去编译。编译好后,在你同等的Qt安装目录,会多出三个文件夹,
点开plugins\sqldrivers,里面的qsqlmysql.dll 和qsqlmysqld.dll 就是你要的了,把这两个文件复制到“D:\Qt\Qt5.12.9\5.12.9\mingw73_64\plugins\sqldrivers”里。 - 编译好两个文件后,还需要把D:\Program Files\mysql-connector-c-6.1.11-winx64\lib里的libmysql.dll文件复制到D:\Qt\Qt5.12.9\5.12.9\mingw73_64\bin中,文件路径根据自己实际情况来。这步完成后,就不会报驱动未加载的错误了。