最近有小伙伴问在程序设置mysql连接的时候使用127.0.0.1和localhost两者到底有什么区别,接下来吾爱编程为大家详细的介绍一下MySQL中localhost与127.0.0.1的区别,有需要的小伙伴可以参考一下:
1、Windows平台:
(1)、使用命令mysql -uroot -p -hlocalhost链接数据库,进入之后使用status来查看状态,可以看到使用的TCP/IP
(2)、使用命令mysql -uroot -p -h127.0.0.1链接数据库,进入之后使用status来查看状态,可以看到使用的TCP/IP
2、Linux平台:
(1)、使用命令mysql -uroot -p -hlocalhost链接数据库,进入之后使用status来查看状态,可以看到使用的UNIX socket
(2)、使用命令mysql -uroot -p -h127.0.0.1链接数据库,进入之后使用status来查看状态,以看到使用的TCP/IP
3、TCP/IP和UNIX socket介绍
(1)、TCP/IP是在多个不同网络间实现信息传输的协议簇,是网络上不同服务器之间进程的通信机制,也可以让同一服务器的不同进程通信。
(2)、UnixDomainSocket又叫IPC(inter-processcommunication进程间通信)用于同一台主机的进程间通讯,它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序列号应答等。只是将应用层数据从一个进程拷贝到另一个进程。
4、小结:
UnixDomainSocket与TCP/IP相比较,在同一台主机的传输速度前者是后者的两倍。所以,在同一台服务器上应该优先选择UnixDomainSocket方式,即设置程序时本地服务用localhost更好。