百度了很多文章,感觉都没说清楚,虽然本文也有可能是错误的,但相信能给大家提供一点思路,解决了我自己疑问与问题
现象
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
下,注意是软链接,两个文件都拷贝到自己机器上的/usr/lib64/mysql
下) - 第三步:重新安装
zabbix-server-mysql
- 补充说明:我自己在尝试的时候,如果没有第一步,直接拷贝,再重启
zabbix-server
也是失败的.......
;
zabbix:libmysqlclient.so.18: cannot open shared object file 原因及解决办法