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 页面编码声明方法详解(header或meta)
Mar 12 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
PHP中is_file()函数使用指南
May 08 PHP
php实现遍历多维数组的方法
Nov 25 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
Feb 12 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 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
PHP 字符串 小常识
2009/06/05 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
javascript英文日期(有时间)选择器
2007/05/02 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
python数组过滤实现方法
2015/07/27 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
python在线编译器的简单原理及简单实现代码
2018/02/02 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
大家访活动实施方案
2014/03/10 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript