QT远程连接MySql服务器和解决QMYSQL driver not loaded

环境配置参考:

linux:Ubuntu14.04安装MySql和本地Windows Navicat for MySql远程连接MySql

测试代码:

#include "dialog.h"
#include <QApplication>
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QtDebug>

void check_Sqldrivers()
{
    qDebug()<<"Available drivers:";
    QStringList drivers=QSqlDatabase::drivers();
    foreach(QString dvr,drivers)
    {
        qDebug()<<dvr;
    }
}

void test_connect_mysql()
{
    /*输出当前QT所支持的数据库版本驱动*/
    check_Sqldrivers();
    /*声明一个QMySql的对象实例*/
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    /*连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)*/
    db.setHostName("192.168.0.102");
    /*连接数据库端口号,与设置一致*/
    db.setPort(3306);
    /*连接数据库名,与设置一致,MySql服务器中存在的*/
    db.setDatabaseName("testWinConnToUbuntuMySql");
    /*数据库用户名,与设置一致*/
    db.setUserName("root");
    /*数据库密码,与设置一致*/
    db.setPassword("123456789");
    /*打开数据库*/
    db.open();
    if(!db.open())
    {
        qDebug()<<"连接失败"<<"connect to mysql error"<< db.lastError().text();
        return ;
    }
    else
    {
        qDebug()<<"连接成功"<<"connect to mysql OK";
    }
    /* 对数据库的操作... */
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //Dialog w;
    //w.show();
        
    test_connect_mysql();

    return a.exec();
}

测试输出:

Available drivers:
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"
连接成功 connect to mysql OK

遇到QMYSQL driver not loaded:

确认远程MySql服务器已开启。去MySql官网下载:mysql-connector-c-6.1.11-win32.zip 我的QT是32位版本

解压mysql-connector-c-6.1.11-win32.zip,

1.将文件夹复制到一个没有空格和汉字的目录里:如E:\Qt

2.找到E:\Qt\mysql-connector-c-6.1.11-win32\lib这个文件夹中的 libmysql.dll 和 libmysql.lib 

3.复制 libmysql.dll 和 libmysql.lib到QT安装目录E:\Qt\Qt5.7.1\5.7\mingw53_32\bin\

4.如果第3步无法成功,则还需要将 libmysql.dll 和 libmysql.lib 复制到当前工程debug目录中。

5.检查E:\Qt\Qt5.7.1\5.7\mingw53_32\plugins\sqldrivers 中是否有相关的数据库dll,MySql有两个:qsqlmysql.dll 和 qsqlmysqld.dll  如果没有则需要编译生成。

6.重启QT工程测试连接。

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值