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 加密解密内部算法
Apr 22 PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php 模拟post_验证页面的返回状态(实例讲解)
Oct 28 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
一个实用的php验证码类
Jul 06 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 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之规范编程命名小结
2013/05/15 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
javascript动画浅析
2012/08/30 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Python随手笔记之标准类型内建函数
2015/12/02 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python绘制多个曲线的折线图
2020/03/23 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
幼儿园教师考核制度
2014/02/01 职场文书
职工趣味运动会方案
2014/02/10 职场文书
世博会口号
2014/06/20 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
离婚财产处理协议书
2014/09/30 职场文书
会议主持词结束语
2015/07/03 职场文书
2015年中秋放假通知范文
2015/08/18 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript