首页 > 数据库 >Qt数据库连接问题

Qt数据库连接问题

时间:2022-12-19 09:33:06浏览次数:36  
标签:路径 Qt 数据库 MySQL db 套件 mysql 连接

Qt无法连接MySQL

1.问题示例:

bool ConnectDatabase::connectMySQL()
{
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("edu");
    db.setUserName("root");
    db.setPassword("xxxxxxxx");

    if(!db.open())
    {
        qDebug() << "数据库打开失败";
        return false;
    }else
    {
        qDebug() << "数据库打开成功";
        return true;
    }

}

结果报错:


2.解决方法

2.1 MySQL位数和QT编译器(构建套件)的位数要相同

(1)MySQL查看,打开MySQL命令行,输入密码登录,输入 “ status ” 回车,即可查看:x86_64

(2)Qt 编译器(构建套件)查看

Qt的编译套件的位数一定要与MySql的位数对应

2.2 通过 Qt 源码工程编译所需的ddl文件

(1)找到qt的安装路径,找到源码mysql.pro(在安装qt的时候勾选source才会有),打开。比如我的在这里

“D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql”

(2)通过 Qt 打开后:

添加INCLUDEPATH 、LIBS、 DESTDIR这三个变量

TARGET = qsqlmysql

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

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

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

#该路径是的Mysql的头文件(include)路径
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"

#这是MySQl的库文件路径
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll"

#为了方便查找,增加一条语句,该语句用来指明编译后的结果输出的位置
DESTDIR=../mysql/lib/

注意:QMAKE_USE += mysql需要注释掉,不然会报错

(3)保存 mysql.pro ,然后构建

(4)找到编译后输出的位置 /mysql/lib/

(5)复制 qsqlmysql.ddl

(6)粘贴到对应的那个构建套件的驱动目录下

我的路径为:

“ D:\Qt\5.15.2\mingw81_64\plugins\sqldrivers ”

(7)此时回来运行测试代码

此时依然报错,但多出了QMYSQL QMYSQL3,说明MySQL的驱动已经有了

(8)去MySQL的安装路径下找到 libmysql.ddl,直接搜索就可以

我的路径为:“ C:\Program Files\MySQL\MySQL Server 8.0\lib ”

(9)将 libmysql.ddl 复制到构建套件的 bin 目录下

(10)现在可以正常连接MySQL数据库

-------------------【注意事项】-------------------

  • MySQL和构建的套件位数一定要相同。

标签:路径,Qt,数据库,MySQL,db,套件,mysql,连接
From: https://www.cnblogs.com/lxd-koi/p/16991210.html

相关文章