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文件中。

  • 相关阅读:
    Vue 创建项目
    Vue组件之间的传参
    Vue自定义组件
    Python开发之路
    爬虫
    手撸系列
    Django从入门到不会放弃
    前端
    day29 TCP的三次握手 TCP的四次挥手 基于TCP的socket
    day28 客户端服务端架构介绍
  • 原文地址:https://www.cnblogs.com/feigen/p/11287224.html
Copyright © 2011-2022 走看看