Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

在配置zabbix连接mysql时出现下面报错:

Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)_第1张图片

系统的配置如下:
mysql> show grants for zabbix;
+--------------------------------------------------------------------+
| Grants for zabbix@%                                                |
+--------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY PASSWORD  |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'%'                 |
+--------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for zabbix@localhost;
+---------------------------------------------------------------------------------------------------------------+
| Grants for zabbix@localhost                                                                                   |
+---------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*6FB318D481316DF3AAED134DFFCC25D2790022CD' |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost'                                                    |
+---------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> system cat /etc/hosts
#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1       localhost
192.168.241.131  walking

折腾 了一天也没搞清楚原理,倒是找到两个解决方案:

方法一、

做个软链接到报错提示的位置去:[root@walking ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

方法二、

将database host的localhost改成127.0.0.1.

没有明白,哪个配置文件里指定了sock路径/var/lib/mysql,欢迎知道朋友指点一下。

下面是关于sock在mysql/zabbix/php中的配置信息:

mysql中socket的配置信息:

[root@walking ~]# egrep -i sock /etc/my.cnf
socket          = /tmp/mysql.sock
socket          = /tmp/mysql.sock
# All interaction with mysqld must be made via Unix sockets or named pipes.

zabbix中socket的配置信息:

[root@walking ~]# egrep -i sock /usr/local/zabbix/etc/zabbix_server.conf
#       If set to localhost, socket is used for MySQL.
#       If set to empty string, socket is used for PostgreSQL.
### Option: DBSocket
#       Path to MySQL socket.
DBSocket=/tmp/mysql.sock
#       Database port when not using local socket. Ignored for SQLite.

php中socket的配置信息:

[root@walking ~]# cat /etc/php.ini|grep sock
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
default_socket_timeout = 60
;extension=php_sockets.dll
; Default socket name for local MySQL connects.  If empty, uses the built-in
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=
; Default socket name for local MySQL connects.  If empty, uses the built-in
; http://php.net/mysql.default-socket
#mysql.default_socket =
mysql.default_socket =/tmp/mysql.sock
; Default socket name for local MySQL connects.  If empty, uses the built-in
; http://php.net/mysqli.default-socket
mysqli.default_socket =

你可能感兴趣的:(zabbix)