MySQL 中 localhost 与 127.0.0.1 的区别
大家在使用MySQL的过程中,可能都有一个疑问:127.0.0.1和localhost是一样的吗?可能有人会说是一样的,但是实际使用中就会出现使用localhost连接不上,换成127.0.0.1就正常连接了。这说明两者是不同的,我们来看看有什么区别吧。
区别
在使用127.0.0.1连接的时候,使用TCP/IP连接。
在使用localhost连接的时候,使用UnixDomainSocket连接。
UnixDomainSocket
UnixDomainSocket又叫IPC(inter-processcommunication进程间通信)用于同一台主机的进程间通讯,它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序列号应答等。只是将应用层数据从一个进程拷贝到另一个进程。
TCP/IP
TCP/IP是在多个不同网络间实现信息传输的协议簇,是网络上不同服务器之间进程的通信机制,也可以让同一服务器的不同进程通信。
总结
UnixDomainSocket与TCP/IP相比较,在同一台主机的传输速度前者是后者的两倍。所以,在同一台服务器上应该优先选择UnixDomainSocket方式,即设置程序时本地服务用localhost更好。
网友评论