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 5.0对象模型深度探索之绑定
Sep 05 PHP
Look And Say 序列php实现代码
May 22 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
PHP 微信支付类 demo
Nov 30 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
PHP链表操作简单示例
Oct 15 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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调用三种数据库的方法(2)
2006/10/09 PHP
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
discuz目录文件资料汇总
2014/12/30 PHP
php邮件发送的两种方式
2020/04/28 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
python str与repr的区别
2013/03/23 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python numpy 常用函数总结
2017/12/07 Python
浅谈Python使用Bottle来提供一个简单的web服务
2017/12/27 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
详解Python是如何实现issubclass的
2019/07/24 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
退休教师欢送会主持词
2014/03/31 职场文书
优秀纪检干部材料
2014/08/27 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
博士生专家推荐信
2014/09/26 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
趣味运动会简讯
2015/07/20 职场文书