最近安装zabbix server后发现无法启动,查看zabbix日志出现如下报错:

[Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

报错很明显,无法连接MySQL数据库,反复检查了zabbix_server.conf确保数据库信息正确,但就是一直提示无法连接数据库。最后发现原因是没有配置DBSocket这个参数导致,如果不配置这个参数,zabbix server可能默认会去找/var/lib/mysql/mysql.sock,但是这个sock不存在,因此死活提示连不上MySQL。

解决办法

先查找MySQL sock进程,然后配置到zabbix_server.confDBSocket参数中:

[root@VM_137_216_centos etc]# find / -name mysql.sock
/tmp/mysql.sock

正确的配置为DBSocket=/tmp/mysql.sock,最后kill Zabbix server的进程(注意一定要先kill进程),再重启动zabbix server解决。