1、使用Qt 5 连接Mysql数据库时,出现下面错误。
我们可以看到这里有Mysql的驱动,只是Mysql的驱动并没有加载成功。一般这种错误分为两种情况:
一、就是缺少Mysql驱动
我们进入到Qt安装路径中,我的路径为D:\Qt\Qt5.4.2\5.4\mingw491_32\plugins\sqldrivers
这里有就说明有驱动,如果没有的话需要把qsqlmysql.dll拷贝到这个目录下,如果找不到这些驱动的话就可能需要去编译源码了,生成这些驱动,源码路径:\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro,编译好,放到...plugins\sqldrivers路径下即可。
二、有驱动但是缺少库
找到Mysql的安装路径(C:\Program Files\MySQL\MySQL Server 5.7\lib) 把libmysql.lib拷贝到\Qt5.4.2\5.4\mingw491_32\bin这个路径下,然后重启QT。
三、如果上面两个步骤都没问题的话就要考虑QT跟Mysql的位数是否一样。
Mysql查看位数:mysql --version
这里可以看到Mysql的是64位的,但是我的QT是32位的,这就可能导致了libmysql.lib和QT套件位数不一样。 导致驱动加载不成功。
四、解决方法
卸载QT,前往官网(Index of /archive/qt/)下载安装包,我这里选择的是这个版本
下载之后双击打开exe安装,傻瓜式安装即可,如果需要注册的话你注册就好了,最后一定要注意,一定要注意!
要记得把这两个勾起来,然后等待安装完成,等待过程有点久还需耐心等待。 安装完成后就可以把libmysql.lib文件拷贝到\Qt5.4.2\5.4\mingw491_32\bin这个路径下(具体的路径根据你们新安装QT的路径),如果找不到这个文件你们可以用我的http://链接:https://pan.baidu.com/s/1dA9pMc1m5PYfNjHGhD1g9A
提取码:kosv
五、测试
新建一个.h文件,记得在main.cpp中调用。最后祝大家成功!!
#ifndef SQLCONNECT
#define SQLCONNECT
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>
static bool connent()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //连接的MYSQL的数据库驱动
db.setHostName("localhost"); //主机名
db.setPort(3306); //端口
db.setDatabaseName("******"); //数据库名
db.setUserName("****"); //用户名
db.setPassword("******"); //密码
db.open();
//测试连接
if(!db.open())
{
qDebug() << "不能连接";
qDebug()<<db.lastError().text();
}
else
{
qDebug() << "连接成功";
}
db.close();
}
#endif // SQLCONNECT