有很多人应该和我一样,当输入qDebug() << QSqlDatabase::drivers();
时,没有显示支持QMYSQL数据库,翻译是缺少QMYSQL的驱动程序,驱动程序未加载。
然后不断查资料得出是缺少libmysql.dll,libmysql.lib,qsqlmysql.lib这三个静态库的驱动插件。
通过下载Mysql的mysql-connector-c-6.1.3-win32可以得到前两个插件。(我这里是32位的)
点击下载
第三个qsqlmysql.lib需要通过编译才能得到
把下载好的mysql-connector-c-6.1.3-win32文件中的lib和include复制到D:\QT\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql目录中
如果D:\QT\5.14.2这个目录下没有Src这个文件夹
就是当时安装的时没有选择Sources,需要卸载重装
打开D:\QT\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql中的mysql.pro
点构建,不需要点击运行,不然会出现找不到执行档。
构建完成后会产生Cannot read D:/qtsqldrivers-config.pri: No such file or directory
提示,不需要理会
然后会在对应的盘中会生成plugins文件
其中就有qsqlmysql.dll文件
全部都复制到D:\QT\5.14.2\mingw73_32\plugins\sqldrivers目录下
再把之前下载文件lib中的libmysql.dll和libmysql.lib复制到
D:\QT\5.14.2\mingw73_32\bin中
最后新建一个Qt的程序,进行测试
qDebug() << QSqlDatabase::drivers();
//添加MYSql数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
//连接数据库
db.setHostName("127.0.0.1"); //数据库服务器IP
db.setPort(3306);
db.setUserName("root"); //用户名
db.setPassword("123456"); //密码
//db.setDatabaseName("mysql"); //使用数据库
//判断,是否连接成功
if(db.open() == false) //连接失败
{
qDebug() << db.lastError().text(); //打印失败原因
qDebug() << "连接失败";
return ;
}
else//连接成功
{
qDebug() << "连接成功";
}
需要在 .pro
文件中添加QT += sql 才能运行成功
出现了支持QMYSQL数据库并且连接数据库成功。
这里是支持32位的Qt,连接数据库的libmysql.dll,libmysql.lib,qsqlmysql.lib文件需要保证有效才能够连接成功。
本教程并不适用于所有的问题,我也是看了很多博主的教程才做出来的。
分享libmysql.dll,libmysql.lib,qsqlmysql.lib文件
链接:https://pan.baidu.com/s/1Qh8HpK7575zQwD1aHG_xZg
提取码:94z0