收到一个MySQL安全漏洞告警,需要修复
Oracle MySQL JAN 2024 Critical Patch Update
因此想着升级MySQL,步骤如下:
sudo apt-get update
sudo apt-get upgrade mysql-server
sudo systemctl restart mysql
mysql --version
完成后Zabbix网页界面能打开,但是提示错误如下:
The Zabbix database version does not match current requirements. Your database version: 5050111. Required version: 6000000. Please contact your system administrator.
查询后说可以通过更改db version实现,步骤如下:
进入MySQL
mysql -uroot -p
update dbversion set mandatory=6000000;
flush privileges;
完成后重启系统,打开页面依然提示同样错误。
查询后发现,/etc/zabbix/zabbix_server.conf 文件被更新了,打开查看里面设置的密码不见了,因此重新添加上,估计是自己debug过程中尝试了不同方法不小心将zabbix配置文件刷新了
再重启服务:sudo systemctl restart zabbix-proxy zabbix-agent apache2
重启MySQL: sudo service mysql restart
这下页面变成全白完全没有显示了
查log发现如下错误
sudo tail /var/log/zabbix/zabbix_server.log
提示没有权限,测试了一下sql用户zabbix的密码,是正确的,因此排除配置文件的问题,继续查询,发现可以通过如下方式激活zabbix用户权限
sudo mysql -u root -p
SELECT Host,USER,Super_priv FROM mysql.user;
UPDATE mysql.user SET Super_Priv='Y' WHERE USER='zabbix' AND host='localhost';
重启机器再打开zabbix页面就恢复正常了。
回顾整个过程,在debug的过程中,zabbix论坛的一个方法我用错了,导致后面一系列的问题,具体如下:
MySQl:
UPDATE mysql.user SET Super_Priv='Y' WHERE user='zabbix' AND host='%';
SET GLOBAL log_bin_trust_function_creators = 1;
Linux CLI: 这里导致我下载更新了zabbix的版本,进而导致配置文件被更新
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb
sudo apt update
后来在zabbix页面看到如下信息:
MySQL: 这里将权限设为N导致后来的问题
UPDATE mysql.user SET Super_Priv='N' WHERE user='zabbix' AND host='%';
SET GLOBAL log_bin_trust_function_creators = 0;