最近进行mysql开发时,遇到了一些比较常见的错误,但根据网上的一些解决方法没有办法解决,最后自己不断调试而解决掉了,特记录一下。
一、mysql lost connection during query错误错误提示
原因:链接断开导致。该错误一般在客户端查询过程中崩溃,或者服务器过载崩溃返回错误。
二、SSL connection error: error:00000005:lib(0):func(0):DH lib错误提示
原因:该错误一般在异常断开mysql连接后再次进行查询操作时会返回该错误。
三、Commands out of sync; you can’t run this command now错误提示
参考链接
原因:服务器中进行查询操作时,并发查询另外一个结果时会出现,主要原因是没有释放上次查询的结果。
解析:mysql中其实默认支持并发操作,因此表面上是查询过程的冲突,但实际上是调用函数的关系,是由于mysql_use_result 和 mysql_store_result的原因。mysql_use_result使用时,是取实时结果,上一次的查询结果仍保存在服务器端,此时并不允许再进行查询,因为查询结果仍在使用,需要释放掉后才允许继续查询。而mysql_store_result则是先在本地保存了之前的服务器的查询结果,后续操作函数操作是取的本地结果,这时服务器端的结果是已经释放了,因此可以允许另外的链接进行查询。,
如调用mysql_store_result后仍出现该提示,则由于本地查询结果没有完全释放导致,需要将结果完全释放。
do
{
MYSQL_RES* res = mysql_store_result(&mysql);
mysql_free_result(res);//逐个结果释放
}
while ( (0 == mysql_next_result(&mysql)) );
四、Lost connection to MySQL server at ‘reading authorization packet’, system error: 2 错误提示
原因:
1、如果传输的数据量超出mysql所设定的数据量大小,则可能会提示该错误,并且system error 提示为 0
2、如果接收数据时,客户端由于某种原因导致异常断开,那么下次链接时会接收到该错误。