Zabbix libmysqlclient.so.18: cannot open shared object file 原因及解决办法

百度了很多文章,感觉都没说清楚,虽然本文也有可能是错误的,但相信能给大家提供一点思路,解决了我自己疑问与问题

现象

zabbix版本为5.0,安装的是zabbix-server-mysql
linux版本:centos 7.8
mysql版本:5.7.31
启动的时候就报错,找不到libmysqlclient.so.18: cannot open shared object file:............

原因

先说一下原因:/usr/lib64/mysql/路径下缺少libmysqlclient.so.18文件

排查

  • 大家可以用find / -name ‘libmysqlclient*‘找自己机器上的libmysqlclient文件。
  • 但现在的mysql版本安装时,默认带的libmysqlclient.so.18文件都是>18
  • 并且!如果是二进制安装的话,是不会放在/usr/lib64/mysql下的,会放在你自己指定的解压路径下的lib目录中。

奇怪之处

  • 但我自己有时候安装又可以正常启动zabbix-server,有时候又不行,报的错都是缺少这个文件

根本诱发原因

  • 后来排查发现,系统/usr/lib64/mysql/路径下的libmysqlclient.so.18文件是centos自带的mariadb所拥有的,所以在安装zabbix的时候,如果我没有卸载干净mariadb的这个文件,那么zabbix也就能正常启动。

解决方法

  • 第一步:先卸载掉自己服务器上已经安装好的zabbix-server-mysql
  • 第二步:从另一台机器上拷贝mariadb所带的libmysqlclient.so.18(就在/usr/lib64/mysql下)
  • 第三步:在zabbix主机上,软链接拷贝来的libmysqlclient.so.18/usr/lib64/mysql下,如果不行,再软链接到/usr/lib64下,再不行,再软链接到/usr/lib
  • 第四步:重新启动zabbix-server-mysql

Zabbix libmysqlclient.so.18: cannot open shared object file 原因及解决办法

上一篇:8. 使用Fluentd+MongoDB采集Apache日志


下一篇:Oracle Advanced Queuing 触发器入列和异步通知消息出列