qt连接mysql问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt连接mysql问题相关的知识,希望对你有一定的参考价值。
我想用qt连接mysql,在网上找了很多教程,说qmake -o Makefile "INCLUDEPATH+=C:/mysql/include" "LIBS+=C:/mysql/lib/libmysql.a" mysql.pro,但是我显示cannot find file :mysql.pro,而且我也没有src/sqldrivers/mysql.pro那个目录,该怎么弄?是要自己生成mysql.pro吗?
我的装的qtsdk4.7.3,和mysql 5.5
INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"
保存并退出(即你的mysql的include 路径和 lib 下 opt 的 libmysql.lib 路径)
打开Qt 4.8.0 Command Prompt, 编译这个文件
#qmake -o Makefile mysql.pro
提示3条警告信息,但没影响
#mingw32-make (这个网上有好几个编译命令,我的是用nmake);
然后你会发现你的 qt 下这个 qt/plugins/sqldrivers路径(我的路径为S:\QT\4.8.0\plugins\sqldrivers下)下多了四个文件
分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四个)这样基本上就编译成功,可以使用 mysql 了!~
最后安全起见再将 mysql下 bin 文件中libmysql.dll文件拷贝到 system32 下面 然后测试:
#include<QtGui> #include<QtSql> #include<cstdlib>
#include<QtGui/QApplication> #include<QtSql/QtSql> boolcreateConnection()
qDebug()<<"Availabledrivers:";
QStringListdrivers=QSqlDatabase::drivers(); foreach(QStringdriver,drivers) qDebug()<<"\t"<<driver;
QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL"); qDebug()<<"MYSQLdrivervalid?"<<db.isValid();
intmain(intargc,char*argv[])
至于mysql.pro我是在网上下载的 参考技术A 可以推荐使用sqlyog或者mysql-FONT都不错,你提到的qt没有用过。
QT连接MySQL报驱动未加载问题
报错:QMYSQL driver not loaded
前景提要:首先自己电脑要有mysql数据库,确保在运行状态,我用的是navicat连接的mysql,连接成功后如下所示,这一步成功后用QT连接报驱动未加载错误就可以参看下面两个链接
两个实用参考链接:B站视频
先看这个视频如果能够成功生成需要的文件,看这个就够了
如果上述编译过程出现了,下列类似问题参照下面这个老哥的博客,我就是看这个解决的
实用博客
Cannot read H:/qtsqldrivers-config.pri: No such file or directory
Project ERROR: Library 'mysql' is not defined.
```cpp
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
ui->setupUi(this);
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //连接的MYSQL的数据库驱动
db.setHostName("localhost"); //主机名
db.setPort(3306); //端口
db.setDatabaseName("mysql"); //数据库名
db.setUserName("root"); //用户名
db.setPassword("267637"); //密码
db.open();
//测试连接
if(!db.open())
qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
return ;
else
qDebug()<<"连接成功"<<"connect to mysql OK";
db.close();
测试代码如果成功就显示连接成功 connect to mysql OK
以上是关于qt连接mysql问题的主要内容,如果未能解决你的问题,请参考以下文章