解决MySQL server has gone away的问题

本文介绍了一种处理MySQL连接丢失问题的方法,通过使用try-catch结构并加入循环重新连接的机制来确保应用程序的稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决MySQL server has gone away这样的问题

 

我这个长时间后突然访问的时候还是会出现访问mysql失败,下面是try catch到的错误:

 

Error: MySQL server has gone away 2006  

 

网上的解决方案:  http://boaiking.blog.163.com/blog/static/581721582009227103651576/       http://dev.firnow.com/course/7_databases/mysql/myxl/20081213/153721.html

 

我的解决方法:

在try catch到错误的时候顺便重新连接mysql,下面是加上while后的语句

 

 587   while( true ){ 

 588      try{          

 589          ans= g_query.store(); 

 590          if( ans.size() > 0 ) { 

 591

 592              klog<<"the user's info is in store"<<endl;

 593

 594              mysqlcppapi::Row row= *(ans.begin());

 595

 596              qv["uinterest"] = Json::Value(row["u_it"]);// how to extract multi elements

 597

 605         }

 606      }

 607      catch(mysqlcppapi::ex_BadQuery& er) {

 608          klog << "Error: "<<er.what()<<" "<<g_sql.errnum()<<endl;

 609          g_sql.close();

 610          g_sql.connect();

 611          klog << "reconnect mysql. " <<endl;

 612          continue;

 613      }

 614      catch(mysqlcppapi::ex_BadConversion& er) {

 615          klog<< "Error: Tried to convert /"" << er.get_Data() << "/" to a /""<< er.get_TypeName() << "/"." << endl;

 616      }

 617      break;

 618  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值