mysql_connect localhost和127.0.0.1的区别(网络层阐述)


Posted in PHP onMarch 26, 2015

connects.php

mysql_connect('127.0.0.1','root','zzzizzz1');

mysql_connect('localhost','root','zzzizzz1');

使用strace获取系统调用:

strace php connects.php 2>&1 | grep connect
#127.0.0.1 -> internet socket

connect(3, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

#localhost -> unix domain socket

connect(7, {sa_family=AF_FILE, path="/var/run/mysqld/mysqld.sock"}, 110) = 0

Socket原本是为网络通讯设计的,但后来在Socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。
虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:
不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。
这是因为,IPC机制本质上是可靠的通讯,而网络协议是为不可靠的通讯设计的。
UNIX Domain Socket也提供面向流和面向数据包两种API接口,类似于TCP和UDP,但是面向消息(UDP)的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。

PHP 相关文章推荐
PHP strtr() 函数使用说明
Nov 21 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
php下获取http状态的实现代码
May 09 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
php实现RSA加密类实例
Mar 26 #PHP
PHP中实现crontab代码分享
Mar 26 #PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 #PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 #PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 #PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 #PHP
php编写的一个E-mail验证类
Mar 25 #PHP
You might like
Session的工作方式
2006/10/09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
第五章 php数组操作
2011/12/30 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
新浪的图片新闻效果
2007/01/13 Javascript
javascript 播放器 控制
2007/01/22 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
在Python的循环体中使用else语句的方法
2015/03/30 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
Python工程师面试必备25条知识点
2018/01/17 Python
python之pandas用法大全
2018/03/13 Python
Flask框架web开发之零基础入门
2018/12/10 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
分公司经理岗位职责
2013/11/11 职场文书
学生个人自我鉴定
2014/03/26 职场文书
个人承诺书格式
2014/06/03 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
检讨书格式
2015/05/07 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫