zoukankan      html  css  js  c++  java
  • Qt连接mysql数据库遇到QMYSQL driver not loaded

    本文件向各位博友分享一下我在Qt开发过程中,连接mysql数据库时遇到的问题,以及解决的方法,希望对遇到同样问题的博友有所帮助。

    工程运行环境:vs2015+Qt5.8

    在开发过程中,编写数据库连接函数,然后运行代码,报以下错误:

    QMYSQL driver not loaded

    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

    数据库连接代码整理如下:

    #include "mysql.h"

    bool RegisteredUi::ConnectMysql()
    {
    QString ipaddress = "127.0.0.1";
    QSqlDatabase m_db = QSqlDatabase::addDatabase("QMYSQL"); //数据库类型
    m_db.setHostName(ipaddress); //内网IP"192.168.1.108" //主机名localhost192.168.0.142
    m_db.setDatabaseName("Original_Records"); //数据库名称Original Records
    m_db.setPort(3306);
    m_db.setUserName("root"); //用户名
    m_db.setPassword("password"); //密码
    if (!m_db.open())
    {
    QMessageBox::information(0, "连接失败",
    "请确定网络是否连接正常,或者mysql服务器的IP是否有效!",
    QMessageBox::Cancel);
    return false;
    }
    else
    {
    QMessageBox::information(this, "连接成功", "mysql 数据库连接成功 !");
    return true;
    }
    }

    解决方法:

    1.先安装mysql数据库,确保数据库安装成功

    2.提示mysql.h源文件找不到,解决方法如下:

     #include "mysql.h" //添加mysql.h头文件编译提示

    解决方法:

      1. 将mysql安装目录下的C:Program FilesMySQLMySQL Server 8.0文件夹下的include文件夹拷贝到工程文件夹下,如下图:

      2. 然后右击工程,属性-》c/c++常规,将include添加到附加包含目录中,如下图所示:

    添加完成如下图所示:

    点击确定,应用重新编译工程,刚刚报错提示找不到mysql.h源文件的错误消失了,然后realse编译代码,发现还是会报同样的错误,解决方法与debug模式的解决一样。

    2. 编译虽然通过了,但是运行过程中会有如下提示:

    Qt VS Tools: QML debug: Debugging project 'OriginalRecord'...
    Qt VS Tools: QML debug: DISABLED: QML debugging disabled in Qt project settings

    解决方法如下:

    将mysql安装目录C:Program FilesMySQLMySQL Server 8.0下的lib文件夹拷贝到工程项目下,如下图所示:

    点击项目右键-》属性-》链接器-》找到附加库目录,将lib文件添加进去,如下图所示:

    添加成功后如下图所示:

    找到链接器下的输入-》附加依赖项,然后将需要的xx.lib文件添加进去,如下图所示:

    mysql需要的lib文件有libmysql.lib和mysqlclient.lib两个,添加后如下图所示:

    添加完成之后重新编译项目,运行程序还是会有相同的提示:是因为与mysql有关的xx.dll文件没有添加到工程中。

    添加拷贝libmysql.dll文件到工程同级目录下的x64文件夹中的debug和release文件中。也可以直接拷贝到C:WindowsSystem32下面

    写的不好,希望见谅,希望能够帮组有需要的博友解决问题。

    如果以上还没有解决,将mysql安装目录下C:Program FilesMySQLMySQL Server 8.0in的libeay32.dll,ssleay32.dll,libmecab.dll文件拷贝到工程同级目录下的x64文件夹中的debug和release文件中。

  • 相关阅读:
    「持续集成实践系列」Jenkins 2.x 搭建CI需要掌握的硬核要点
    常用的20个在线工具类网站清单
    推荐一款Python神器,5 行 Python 代码 实现一键批量扣图
    一套测试用例如何实现支持多个环境运行
    推荐一款Python数据可视化神器
    全网独家:成长经历分享 & 我为什么要写书?
    整理一份程序员常用的各类工具、技术站点
    关于《自动化测试实战宝典:Robot Framework + Python从小工到专家》
    重磅新书 |《自动化测试实战宝典:Robot Framework + Python从小工到专家》上市了!
    献给即将35岁的初学者,焦虑 or 出路?
  • 原文地址:https://www.cnblogs.com/feigen/p/11287224.html
Copyright © 2011-2022 走看看