我试图弄清楚为什么 mysql 默认使用 Unix 套接字(/tmp/mysql.sock),而不是普通的 TCP/IP 套接字。
这看起来不像是一个安全问题,因为你只能在 127.0.0.1 上监听,这应该同样安全(套接字文件是世界上可写的,所以你不会获得基于 Unix 帐户的保护)。
当然,所有操作系统都非常依赖高性能 TCP/IP,以至于它不会比 Unix 套接字慢得多 - Linux 即使对于网络流量也能执行各种零复制技巧,因此它的环回速度肯定必须很快。
那么这里使用 Unix 套接字有什么正当理由吗,还是只是一些奇怪的历史事故?
虽然在访问本地主机时不会访问整个 IP 堆栈,但您仍然会访问其中的很大一部分。
Unix 套接字本质上只是一个 2 路管道。它更快更轻。
Unix 套接字还允许您在不管理防火墙规则的情况下控制访问,因为可以通过文件系统权限授予访问权限。
unix 套接字提供的另一项功能是将文件描述符从一个进程传递到另一个进程的能力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)