window QT连接mysql

linux的QT连接mysql还不没做,可能类似吧

本文是引用https://blog.csdn.net/jin761153454/article/details/100760807,感谢博主

我是用的是64位的QT与64为的mysql【网上说一定要一样的位数,否则不行,我没测试】

有的人说:将你mysql里的lib下的这几个文件复制到QT的sqldricers里面就可以使用mysql了

mysql测试代码:

#include <QSqlDatabase>
#include <QDebug>
#include <QSqlError>
void MainWindow::avaliableDrivers()
{
    qDebug()<<"Avaliable drivers;";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver,drivers)
        qDebug()<<driver;
}

void MainWindow::connectMysql()
{
    db = QSqlDatabase::addDatabase("QMYSQL");  //连接的MYSQL的数据库驱动
    db.setHostName("localhost");         //主机名
    db.setPort(3306);                    //端口
    db.setDatabaseName("emarket");          //数据库名
    db.setUserName("root");              //用户名
    db.setPassword("123456");            //密码
    db.open();

    //测试连接

    if(!db.open())
    {
        qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
        return ;
    }
    else
    {
         qDebug()<<"连接成功"<<"connect to mysql OK";
    }

    db.close();
}
//类似的错误信息
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins

所以就有了下面的文章

自己重新编译mysql驱动

1.使用QtCreator打开mysql.pro文件

2.修改pro文件

TARGET = qsqlmysql

#QMAKE_USE += mysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#同时屏蔽QMAKE_USE += mysql:如下.如果不屏蔽会提示mysql库不存在
#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

#添加mysql头文件和lib【#该路径是下载解压后的mysql的头文件路径】
INCLUDEPATH += "D:/fileInstallPath/mysql-5.7.30-winx64/include"
LIBS += "D:/fileInstallPath/mysql-5.7.30-winx64/lib/libmysql.lib"

#设置输出目录(有的时候不好找,索性自己设置输出目录)
DESTDIR = ../mysql/lib/

那么接下来,就点击编译按钮即可.不用其他操作.如果顺利你可以在目录下看到lib目录,如下

我只有3个文件,我看博主有5个,下面是博主的

扫描二维码关注公众号,回复: 12884839 查看本文章

接下来就是将新生成的lib里面的文件复制到QT的sqldrivers那边(lib里面的全部复制)

重新编译你的mysql测试代码【应该就ok了】

猜你喜欢

转载自blog.csdn.net/weixin_42470290/article/details/114785133