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

首先:进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下 (我的目录为:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),这个下面有两个文件mysql.pro,一个mian.cpp! 用文本编辑器打开该目录下的mysql.pro文件 在mysql.pro中加入:
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问题的主要内容,如果未能解决你的问题,请参考以下文章

QT连接MYSQL数据库教程

Qt如何连接MySQL

QT连接MySQL报驱动未加载问题

QT连接MySQL报驱动未加载问题

QT连接MySQL报驱动未加载问题

QTMysqlMySQL安装及QT连接MySQL驱动编译操作步骤