mysql gone away 测试_Zabbix错误提示MySQL server has gone away解决

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)

{ intret = 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

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

原文链接

format,png

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

以下是在 CentOS 7 上安装 MySQL 和编译安装 Zabbix 的步骤: 1. 安装 MySQL 首先,安装 MySQL 数据库,在终端中执行以下命令: ``` sudo yum install mysql-server -y ``` 2. 启动 MySQL 安装完成后,启动 MySQL 服务: ``` sudo systemctl start mysqld ``` 3. 设置 MySQL root 密码 设置 MySQL 的 root 用户的密码: ``` sudo mysql_secure_installation ``` 4. 创建 zabbix 数据库 使用 MySQL 的 root 用户登录到 mysql: ``` sudo mysql -u root -p ``` 输入密码后,进入 mysql 命令行模式,创建 zabbix 数据库: ``` CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; ``` 5. 创建 zabbix 用户和授权 创建 zabbix 用户并设置密码: ``` CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; ``` 将 zabbix 用户授权给 zabbix 数据库: ``` GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; ``` 刷新权限: ``` FLUSH PRIVILEGES; ``` 6. 安装编译 Zabbix 下载 Zabbix 源代码: ``` wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.0.tar.gz ``` 解压缩: ``` tar zxvf zabbix-5.0.0.tar.gz ``` 进入目录: ``` cd zabbix-5.0.0 ``` 安装依赖: ``` sudo yum install -y gcc make cmake automake autoconf libtool libevent-devel openssl-devel ``` 编译安装: ``` ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 make install ``` 7. 配置 Zabbix 创建 Zabbix 配置文件: ``` sudo cp /usr/local/etc/zabbix_server.conf.example /usr/local/etc/zabbix_server.conf ``` 编辑 zabbix_server.conf 文件,更改以下几行: ``` DBName=zabbix DBUser=zabbix DBPassword=password ``` 8. 启动 Zabbix Server 启动 Zabbix Server: ``` sudo /usr/local/sbin/zabbix_server -c /usr/local/etc/zabbix_server.conf ``` 9. 启动 Zabbix Agent 启动 Zabbix Agent: ``` sudo /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ``` 10. 访问 Zabbix 使用浏览器访问 Zabbix Web 界面,输入 IP 地址或域名: ``` http://your-ip-address/zabbix ``` 按照界面指引完成安装。 以上是在 CentOS 7 上安装 MySQL 和编译安装 Zabbix 的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值