暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

zabbix3.4.11【更换MySQL】维护笔记

原创 数据库管理员陆美芳 2024-09-09
105

1、问题描述

2018年摸索着搭建好的zabbix,原来我用于监控公司内部服务器的,但后来被业务用来监控客户的数据了,就交给运维人员,很长一段时间没登录,最近想起来了解下zabbix的服务端和客户端之间是怎么通信的,通信协议是什么,就想登录zabbix的web端,发现密码都不记得了,于是找到资料,如何修改admin的密码,只是数据库还是我管的。但是改完了发现登录不了,报错了,提示的是:zabbix@localhost无法访问之类的。看这个提示,找到数据库的mysql.user表,查询结果,确实没有了zabbix这个账号。视图创建账号是,提示mysql.user表损坏。

2、解决思路

表损坏了,首先尝试的是通过MySQL客户端连接工具,修复表,但是没有用;再备份表,然后删除,然后重新导入,发现也不行。
那就考虑迁移数据库,迁移后,改了配置 /usr/local/zabbix/etc/zabbix_server.conf里面的数据库相关从配置参数,报错的是:
zabbixerror.png

3、最终解决办法

重装了MySQL,因为之前的MySQL是yum安装,所以先用yum remove 'mysql*'删除所有MySQL相关的包,然后删除配置文件,然后再通过自己的一键部署MySQL脚本安装MySQL。安装后启动zabbix_server有个错误:
error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory,
解决办法是:
执行如下命令
ls -s /usr/local/mysql/lib/libmysqlclient.so.20 /lib64/
保障zabbix_server启动正常后,再找到前端工程的配置文件/usr/local/nginx/html/zabbix/conf/zabbix.conf.php
修改数据库的配置后,重启nginx,问题解决!文件的完整内容如下,修改第一部分为实际的数据库信息:

<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'xxx.xxx.xx.xx';
$DB['PORT']     = 'mysqlport';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'passwordstring';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'xxx.xxx.xx.xx';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'xxxxxx';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
最后修改时间:2024-09-09 11:50:16
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论