Qt5.13编译mysql5.6.45-x64驱动(Win10)
1、系统环境
系统版本:Win10 1809
Qt版本:5.13
编译器版本:MSVC2015-x64
mysql版本:5.6.45-x64
2、编译前准备
Qt安装时有勾选resources选项,这个选项表示安装带有源码。
mysql5.6.45已正确安装,如为安装可查看上篇博客。
3、打开驱动编译的源文件
路径参考:
D:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
双击打开文件,
选择编译器,选择之后点击configure project 按钮
如图
4、修改工程配置文件
双击打开mysql.Pro
修改下列选项
1)注释 QMAKE_USE += mysql
2)在OTHER_FILES += mysql.json后添加(ps:将下述目录替换为安装的实际目录)
win32:LIBS += $$quote( D:\Program Files\mysql-5.6.45-winx64\lib\libmysql.lib )
INCLUDEPATH += $$quote( D:\Program Files\mysql-5.6.45-winx64/include )
DEPENDPATH += $$quote( D:\Program Files\mysql-5.6.45-winx64/include )
修改之后如下图所示
5、开始编译
配置文件修改完成之后,重新构建项目
构建项目完成之后,点击编译
编译完成后,dll文件会在Qt安装磁盘根目录下的plugins的文件夹里。
如果没有任何错误消息提示,但是还是编译失败的话,请打开qt的案例,直接运行,观察是否正常运行,如果提示错误信息Qt LNK1158无法运行rc.exe则参考之下解决方案,完成后再重新编译mysql驱动
6、dll文件的拷贝覆盖
dll文件生成成功后,将 qsqlmysql.dll 和 qsqlmysqld.dll 两个文件拷贝到两个指定目录内
本人的是:
D:\Qt\Qt5.13.0\5.13.0\msvc2015_64\bin
D:\Qt\Qt5.13.0\5.13.0\msvc2015_64\plugins\sqldrivers
7、测试
新建一个Qt Widget的工程
在ui上添加一个lineEdit控件
修改.pro文件,QT += sql
在.h文件中添加定义
QSqlDatabase database;
QString connectMysql(QString connectName,QString ip , int port,QString userName,QString password);
在.cpp文件中添加代码
ui->lineEdit->setText(connectMysql("huang","127.0.0.1",3306,"root",""));
QString mysqltest::connectMysql(QString connectName,QString ip , int port ,QString userName,QString password)
{
if (QSqlDatabase::contains(connectName))//判断testConnect连接是否存在并连接
{
database = QSqlDatabase::database(connectName);
}
else //未连接则新建数据库连接
{
database=QSqlDatabase::addDatabase("QMYSQL",connectName);//创建数据库连接,并为其命名testConnect
database.setHostName(ip); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
database.setPort(port); //连接数据库端口号,与设置一致
database.setUserName(userName); //数据库用户名,与设置一致
database.setPassword(password); //数据库密码,与设置一致
}
if(!database.open())
{
return "fail to connect mysql:"+database.lastError().text();
}
return "";
}
如图所示
如果lineEdit中无任何提示,
恭喜你,mysql的驱动已经能够正常使用了