博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zabbix错误提示MySQL server has gone away解决
阅读量:6231 次
发布时间:2019-06-21

本文共 2511 字,大约阅读时间需要 8 分钟。

Zabbix错误提示MySQL server has gone away解决

相信细心的同学在使用Zabbix的过程中,会遇到[Z3005] query failed: [2006] MySQL server has gone away 这个错误提示,虽然出现错误提示,但实际并不会影响Zabbix Server的正常使用。那么,这个问题能不能解决呢?本文将带你彻底解决此问题的出现。

    欢迎关注OneOaaS 微信公众号,获得更多Zabbix相关知识和运维知识。

1

错误现象

22773:20160108:172513.801 [Z3005] query failed: [2006] MySQL server has gone away [select hostid,key_,state,filter,error,lifetime from items where itemid=34993]

22968:20160108:172517.815 [Z3005] query failed: [2006] MySQL server has gone away [select hostid,key_,state,filter,error,lifetime from items where itemid=32057]

2

分析

如果你之前没有遇到这个问题,第一想到的应该是去网上搜索,MySQL出现 [2006] MySQL server has gone away,根据网络搜索的结果,会得出以下解决办法:

#vim /etc/my.cnf

max_allowed_packet=300M

wait_timeout=200000

interactive_timeout = 200000

然后重启MySQL,经过测试,该方法无果而终,问题依旧。

3

解决办法

继续寻找解决办法,在Zabbix的JIRA里面看到此问题为Zabbix Server的BUG,已在2.5中解决,但对于2.5以下版本,该bug没有修复。

解决办法如下

#vim src/libs/zbxdb/db.c

int    zbx_db_connect(char *host, char *user, char *password, char *dbname, char *dbschema, char *dbsocket, int port)

{

     
int   ret = ZBX_DB_OK, last_txn_error, last_txn_level;
#if defined(HAVE_IBM_DB2)
     
char           *connect = NULL;
#elif defined(HAVE_MYSQL)
       my_bool         mysql_reconnect = 1
;                                                                                  
#elif defined(HAVE_ORACLE)
     
char   *connect = NULL;
     
sword err = OCI_SUCCESS;

#elif defined(HAVE_MYSQL)

    conn = mysql_init(NULL);
    if (NULL == mysql_real_connect(conn, host, user, password, dbname, port, dbsocket, CLIENT_MULTI_STATEMENTS))
    {
            zabbix_errlog(ERR_Z3001, dbname, mysql_errno(conn), mysql_error(conn));
            ret = ZBX_DB_FAIL;

}

    if (0 != mysql_options(conn, MYSQL_OPT_RECONNECT, &mysql_reconnect))

             zabbix_log(LOG_LEVEL_WARNING, "Cannot set MySQL reconnect option.");
                                                             
    if (ZBX_DB_OK == ret && 0 != mysql_select_db(conn, dbname))
    {
            zabbix_errlog(ERR_Z3001, dbname, mysql_errno(conn), mysql_error(conn));
            ret = ZBX_DB_FAIL;

}

注意红色字体的代码

./configure --host=x86_64-redhat-linux-gnu --build=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/sha

re --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-dependency-tracking --enable-server --enable-proxy --enable-java --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --with-libcurl --with-libxml2 --sysconfdir=/etc/zabbix --datadir=/var/lib --enable-server --with-mysql

重新编译完成后,整个世界清静了,问题完美解决!

原文链接

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

欢迎关注公众号获取更多Zabbix知识

转载地址:http://dktna.baihongyu.com/

你可能感兴趣的文章
Android在onCreate()中获得控件尺寸
查看>>
php设置虚拟目录
查看>>
计算机是如何做加法的?(4)——构建半加器的初步设想
查看>>
最近打算把string_h下面的函数都实现一遍
查看>>
farpoint合计列不参与排序实现方法
查看>>
嵌入式Linux C语言基础——ARM Linux内核常见数据结构
查看>>
原理剖析(第 006 篇)Semaphore工作原理分析
查看>>
Java基础查漏补缺:(开篇)为什么要在即将找工作的时候还在看Java基础
查看>>
VXWORKS关于任务创建的几个函数概述
查看>>
破解candy crush过程
查看>>
corosync+pacemaker+drbd构建web高可用集群
查看>>
年计划,技术儿告诉你怎么做?
查看>>
VCT-Virtual Cable Test-虚拟电缆检测
查看>>
Java ibatis调用存储过程出现阻塞
查看>>
例解三层交换原理
查看>>
java-第十一章-类的无参方法-实现菜单的级联效果
查看>>
如何检测集群中每台主机的状态
查看>>
时针、分针在一昼夜 24 小时内重合多少次?
查看>>
PHP 5 常量
查看>>
第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
查看>>