NFS挂载目录导致LNMP瘫痪

环境:centos 7.3 8核32G
过程:通过NFS实现不同云服务器间远程挂载目录。在配置挂载/tmp/目录时,由于NFS的共享目录的权限设定。导致mysql无法在/tmp目录下写入mysql.sock,程序无法找到/tmp/mysql.sock。
解决办法:临时修改代码localhost为127.0.0.1,并且对127.0.0.1赋相同权限。凌晨3点以后重启mysql,生成/tmp/mysql.sock

原因:

1.一种说法是。
linux下,mysql的localhost默认是指unix socket。看看mysql的配置文件,在mysqld那一部分你的mysqld打开的unix socket放在哪里,一般是/tmp/mysql.sock之类的,再看看mysql(客户端)默认是去哪儿找unix socket(看看/etc/mysql.conf的配置,mysql那一部分中默认unix socket的路径,实在不行对mysqld用lsof,对mysql用strace看看丫的究竟open调用打开哪个文件去了),这两个如果对不上,那就连不上。 127.0.0.1对mysql来说指的是tcp socket。

2.另一种说法是,有待考证。
localhost也叫local ,正确的解释是:本地服务器
127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器)
他们的解析通过本机的host文件,windows自动将localhost解析为127.0.0.1

localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。
一般设置程序时本地服务用localhost是最好的,localhost不会解析成ip,也不会占用网卡、网络资源。
有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。

可以确定的,mysql在使用127.0.0.1时,走的是tcp/ip协议栈,即端口通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值