概述
环境:
Win10+QT5.13+MySQL5.5
- QT5.13生成MYSQL数据库驱动
因QT5.13无mysql数据驱动,因而需要先生成所需要的MYSQl驱动
1、打开QT自带的mysql源码工程,C:QtQt5.13.05.13.0Srcqtbasesrcpluginssqldriversmysqlmysql.pro(安装目录根据实际调整)
打开工程后调整mysql.pro文件,增加如下内容
//该路径是mysql的头文件路径
INCLUDEPATH +="C:/Program Files/MySQL/MySQL Server 5.5/include"
//这是MySQL的库文件路径
LIBS +="C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib"
//为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置
DESTDIR = ../mysql/lib/
然后注释掉mysql.pro文件中的 QMAKE_USE += mysql(我的环境不注释会报错)
#QMAKE_USE += mysql
编译此工程,然后会在mysql.pro的同级目录的lib下生成驱动文件
将上面的四个文件拷贝到QT的数据库驱动文件夹里面C:QtQt5.13.05.13.0mingw73_64pluginssqldrivers
至此,QT5.13安装myql驱动完成。可以编写如下测试程序
bool SqlBase::testMySql(QString ip, QString username, QString password, int port, QString dbName)
{
bool connect=false;
qDebug() << "可用的驱动: ";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers)
{
qDebug() << driver;
}
//载入Mysql驱动,打开本地数据库
QSqlDatabase db2=QSqlDatabase::addDatabase("QMYSQL");
db2.setHostName(ip);//如果连接远程数据库,就把IP换成对方的,并且远程防火墙是关闭的
db2.setPort(port);
db2.setUserName(username);//这个用户是默认的,如何打开这个用户,自己百度
db2.setPassword(password);//这个是我的口令
db2.setDatabaseName(dbName);
if(!db2.open()){
qDebug()<<"The mysql database connect faile!";
}else{
QSqlQuery query(db2);
query.exec("select * from test");
while(query.next()){
qDebug()<<query.value("name").toString();
}
qDebug()<<"The mysql database connect success !";
db2.close();
connect=true;
}
return connect;
}
- 打包连接mysql数据库的QT工程
首先用release模式对需要打包的QT工程进行编译执行
然后找到release的编译后的目录,找到.exe文件,将其拷贝到一个新的文件夹下,我是直接在E盘下建立了qtTest文件夹;
在windows的程序栏中打开Qt15.3(MinGw 7.3.0 64-bit) 进入到qtTest目录下,然后执行windeployqt test.exe,这样,QT会将所执行文件所依赖的库自动复制到此目录下
至此,双击text.exe文件即可直接运行。
不过发现一个问题,之前生成的mysql的几个驱动文件并没有拷贝过来,所以需要手动将前面生成的mysql的四个驱动文件拷贝到text.exe的同级目录下(按理说应该是放到sqldriver目录下的,可是发现放到这个目录下依然连不上mysql数据库,于是放到test.exe的同级目录下),若不行,可以试着放在qtTestsqldriver目录下试试,根据自己的实际情况调整,我是放在同级目录下可以的。
此外,若用的配置文件配置数据库连接信息,则将配试文件例如:config.ini文件放在test.exe同级目录即可。
最后
以上就是迅速跳跳糖为你收集整理的QT5.13连接MySQL即打包过程的全部内容,希望文章能够帮你解决QT5.13连接MySQL即打包过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复