最经在测试一个项目时用到MYSQL 数据库 ,QT下如何使用MYSQL ,网上搜一遍 ,回答各异,群里问一遍,结果回答的都是皮毛 ,不能解决问题,现在自己的故障重现,让后来者免遭炼狱之苦.

  1,项目:我的项目是QT4.5开发的,使用MYSQL 数据库.

 2,环境: 我的开发环境是:WINDOWS XP SP2   我的QT工具 是QT5.7 最新  调试minGW 编辑器 QT CREATOR 4.4,没有使用VS版的 网上说QT5.7  不支持XP 但是测试结果不是这样,官网也没有查到5.7配套XP 的版本 但是实际使用minGW,完全可以在XP下工作 没有任何问题.

 2升级:刚才说了,那个醒目是QT4.5工程 需要在QT5.7里打开 重新配置不过这个没有多少难度,可以看以前的博文 QT升级.

 升级后软件启动提示:

QT (WINDowsXP)MSQL 配置故障全略_第1张图片

 3按照有关说明 说是没有MYSQL数据库驱动 于是到

D:\Qt\Qt5.7.0\5.7\mingw53_32\plugins\sqldrivers (这是我的QT安装目录 个人有异)

QT (WINDowsXP)MSQL 配置故障全略_第2张图片


QT (WINDowsXP)MSQL 配置故障全略_第3张图片


明显看到自己目录下有MYSQL 驱动插件


但就是不能连接 ,其实MYSQL属于第三方服务 本身没有在QT包含 这里只是提供一个连接接口,既然这样说明我们还需要第三方软件MYSQL

于是到网站下载,MYSQL5.7 越新越好,结果测试还是不能连接

  

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include


int main(int argc, char *argv[])

{

   QCoreApplication a(argc, argv);

  // QSqlDatabase db= QSqlDatabase::addDatabase("QMYSQL");//QSQLITE

  // db.setDatabaseName(":memory:");

   //if(!db.open())

  // {

   //   return false;

   //}

/*

   QSqlQuery   query;

   query.exec("create table student(id int primary key,name varchar)");

   query.exec("insert into student value('1,xiaogang')");

   query.exec("insert into student value('2,wangwu')");

   query.exec("insert into student value('3,lisi')");


    query.exec("slect id name from student where id>2 ");

   while(query.next())

   {

     int ele0=query.value(0).toInt();


     QString ele1=query.value(1).toString();

     qDebug() << ele0 << ele1 ;

   }

*/

/*

   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

   db.setHostName("127.0.0.1");

   db.setDatabaseName("testsql");

   db.setUserName("root");

   db.setPassword("root");

   bool ok = db.open();

   qDebug() << ok;


hostname=localhost

database=bpmstest

username=root

password=123456

  */


   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

       db.setHostName("127.0.0.1");//localhost

       db.setPort(3306);

       db.setDatabaseName("testsql");

       db.setUserName("root");

       db.setPassword("123456");


       bool ok = db.open();//寤虹珛鏁版嵁搴撹繛鎺?


       if(!ok)

       {

          // QMessageBox::critical(0,QObject::tr("杩炴帴鏁版嵁搴撳け璐ワ紒锛侊紒"),db.lastError().text());

           qDebug() << ok;

          // return false;

       }

       else

       {

           //QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("杩炴帴鏁版嵁搴撴垚鍔燂紒锛侊紒"));

         qDebug() << ok<<123;

           return true;

       }

   //鐪嬩笅  鎻愮ず浠涔堜俊鎭?锛?





    return a.exec();

}


看来必须安装MYSQL  于是 下载安装MYSQL 装好后 结果不知道那个是MYSQL启动项

QT (WINDowsXP)MSQL 配置故障全略_第4张图片

4这样在自己的环境中就有了MYSQL 数据库 

然后启动自己的软件

QT (WINDowsXP)MSQL 配置故障全略_第5张图片