Qt新安装了个5.12.8发现无法连接Mysql数据库,运行时提示没有Mysql驱动,
首先在程序中添加了代码查看支持的驱动 qDebug() << QSqlDatabase::drivers(),在应用程序输出框中会打印出所有支持的数据库驱动,我解决问题之后现在其中包括QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7等等这几种驱动,下面找不到驱动时就有两种情况了:
一、
⑴其中包括你要连接的数据库Mysql的驱动,在这种情况是是最简单的,你只需要安装一个mysql,mysql版本一定要和Qt运行版本一致,例如32位qt工程用32位的mysql文件,64位的qt工程用64位的mysql文件,否则错误无法解决,然后去mysql安装目录下搜索libmysql.dll;
⑵或者你不想安装mysql,需要自己找资源包括mysql的必要文件,文章底部有我的资源可以供你们下载,或者也可以自己找也可以,然后将压缩包解压之后,找到libmysql.dll;
⑶最后将libmysql.dll拷贝到Qt下的一个指定安装目录下,例如:D:\Qt\Qt5.12.8\mingw73_32\bin目录下即可解决这种情况下的找不到驱动失败情况,如果解决不了一定是mysql的libmysql.dll和qt的版本不对应
二、
⑴列举出支持的数据库之后发现没有mysql,这就有点麻烦了,首先需要安装Qt时将源文件Src安装到本地,因为我们要用到Src里边的工程文件,否则的话还是将Qt卸载重新安装吧,
⑵找到QT安装目录下的mysql工程文件,例如D:\Qt\Qt5.12.8\Src\qtbase\src\plugins\sqldrivers\mysql,在这个目录下会有mysql.pro文件,用qt打开mysql.pro工程文件加载到qt工程中
⑶修改mysql.pro工程文件,将QMAKE_USE+=mysql屏蔽或者删除掉,怎么屏蔽?在行首加#即可,
再添加头文件目录INCLUDEPATH += “mysql安装目录或者解压压缩包后的目录中的include目录”,
添加库库文件LIBS += “mysql安装目录或者解压压缩包后的目录中的lib下的libmysql.lib文件”,
为了方便找到生成的库文件,最后指定输出目录为当前工程目录DESTDIR=…/mysql/lib/
例如:
INCLUDEPATH += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\include”
LIBS += “D:\Program Files(x86)\Mysql\mysql-connector-c-6.1.3-win32\lib\libmysql.lib”
DESTDIR=…/mysql/lib/
⑷好,现在都添加完毕了,然后构建工程即可,但是构建时你会发现构建失败,会有报错提示,这个没关系,不用管,然后你会发现当前目录下多了一个lib文件夹,里边包含了工程构建出来的四个库文件:libqsqlmysql.a,libqsqlmysql.a,qsqlmysql.dll,qsqlmysqld.dll,
只需要将这两个dll文件拷贝到qt驱动目录(例如:D:\Qt\Qt5.12.8\mingw73_32\plugins\sqldrivers)下,你会发现所有支持的数据库驱动全在这里,
⑸之后情况就跟一相同了,找到libmysql.dll拷贝到D:\Qt\Qt5.12.8\mingw73_32\bin,就可以完美解决问题
Mysql-win32-forQt.zip