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 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
smarty实例教程
Nov 19 PHP
php获取某个目录大小的代码
Sep 10 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
PHP动态编译出现Cannot find autoconf的解决方法
Nov 05 PHP
php计算整个目录大小的方法
Jun 01 PHP
PHP实现合并discuz用户
Aug 05 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 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
杏林同学录(六)
2006/10/09 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
php制作简单模版引擎
2016/04/07 PHP
php上传excel表格并获取数据
2017/04/27 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
PyQt5实现拖放功能
2018/04/25 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Pygame框架实现飞机大战
2020/08/07 Python
Python实现EM算法实例代码
2020/10/04 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
后勤副校长自我鉴定
2013/10/13 职场文书
优秀团队获奖感言
2014/02/19 职场文书
父母对孩子说的话
2014/04/12 职场文书
人生遥控器观后感
2015/06/11 职场文书
早恋主题班会
2015/08/14 职场文书
《植树问题》教学反思
2016/03/03 职场文书
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android