Ubuntu 24.04 LTS树莓派4上Zabbix服务器间歇性数据库不存在错误的永久解决方案求助
Ubuntu 24.04 LTS树莓派4上Zabbix服务器间歇性数据库不存在错误的永久解决方案求助
从你提供的日志和排查动作来看,核心问题其实是MySQL服务在间歇性自行关闭——日志里明确显示了Received SHUTDOWN from user . Shutting down mysqld,这才是Zabbix报“db not found”的根因,之前调整socket路径和缓冲池大小只是治标,没触碰到本质问题。下面给你一套从根因排查到永久解决的实操步骤:
一、先搞明白MySQL为啥会自己“跑路”
树莓派硬件资源有限,大概率是这两个原因:系统内存不足被OOM Killer强制杀死,或者MySQL自身崩溃。你先从这几个地方查起:
- 翻系统日志
/var/log/syslog,搜索mysqld或者OOM Killer关键词,看看是不是系统因为内存吃满,把MySQL进程直接干掉了。树莓派4哪怕是8G版,同时跑Zabbix、MySQL再加别的服务,也很容易顶不住。 - 看MySQL自身的错误日志
/var/log/mysql/error.log,重点看shutdown前的几分钟有没有异常,比如InnoDB报错、磁盘写失败这类信息。
二、针对性解决MySQL自行关闭的问题
如果是OOM(内存不足)导致的:
- 给MySQL做内存“节流”,编辑
/etc/mysql/mysql.conf.d/mysqld.cnf,添加/调整这些参数(根据你的树莓派内存来,比如4G内存的话,这么设比较稳妥):max_connections = 50 # Zabbix用不了太多连接,砍到50足够 key_buffer_size = 32M sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 8M - 扩容swap分区,树莓派默认swap一般只有1G,你可以扩到2G:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 配置开机自启 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
如果是MySQL自身崩溃导致的:
- 检查磁盘空间:
df -h看看根目录或者/var/lib/mysql所在分区是不是满了,磁盘满了会导致MySQL写日志失败直接崩溃。 - 修复可能损坏的数据库表:
mysqlcheck -u root -p --all-databases --repair - 升级MySQL到最新补丁版,Ubuntu 24.04自带的8.0.39可能有已知bug:
sudo apt update && sudo apt upgrade mysql-server
三、加固Zabbix和MySQL的连接可靠性
解决了MySQL跑路的问题,再做些配置优化防复发:
- 给Zabbix加连接重试机制,编辑
/etc/zabbix/zabbix_server.conf:DBConnectRetry=30 # 连接失败时重试30秒 DBKeepAlive=60 # 每60秒发心跳保活 - 确保socket权限没问题,避免Zabbix连不上:
sudo chmod 770 /var/run/mysqld/mysqld.sock sudo usermod -aG mysql zabbix
最后验证
重启服务后持续观察几天:
sudo systemctl restart mysql sudo systemctl restart zabbix-server
用htop或者top盯着内存使用,同时检查Zabbix前端和日志,看看还会不会出现db not found的错误。
备注:内容来源于stack exchange,提问作者Cloud DigiSapi
相关产品推荐
相关产品推荐

