什么时候使用MySQL套接字,什么时候使用host:port?


19

许多应用程序允许我使用用户名,密码主机和端口连接到Mysql。有些允许我配置套接字而不是host:port

有明显的优势吗?我可以想象一个套接字仅在MySQL在同一台计算机上时才起作用。是这样吗?如果是这样,使用该套接字而不是连接到它localhost:3306是否有好处?

我对网络和套接字的来龙去脉不太熟悉,所以也许我完全错过了一些关键信息,而我的问题却很愚蠢。如果是这样,您能解释我所缺少的吗?

Answers:


19

好吧,很简单。

套接字是基于文件的通信,您不能从另一台计算机访问套接字。

另一方面,端口是开放的(取决于配置),您可以使用host + port组合从其他计算机访问mysql。

另外,据我所知,套接字只是文件格式的主机+端口的组合。因此,我看不出使用它们中的任何明显好处(据我所知)。

尽管我个人更喜欢使用host + port,但是随着代码变得更加灵活,我可以将其移至另一台机器,而无需进行太多更改。

复制一些旧帖子中的粘贴内容:

Unix套接字要快一些,因为您没有tcp-overhead。如果您意识到这种性能损失是服务器负载的问题。如果服务器负载不高,您将无法识别它。

如果您使用Jails(FreeBSD)或其他虚拟化技术将例如MySQL-Server与Web服务器分开,则通常使用tcp / ip设置而不是套接字。但是,防火墙规则需要限制访问。

您需要确定系统是否处于高负载下,因此必须使用套接字,或者您可以专注于良好的系统设计(分隔服务),然后使用tcp / ip解决方案会更好。

因此,请简短回答:

是的,存在性能差异,套接字速度更快。如果您没有承受高服务器负载,则只需选择最适合您系统设计的产品即可。


但是,当我拥有两者时,mysqld与客户端位于同一台计算机上。使用一个与另一个有什么区别吗?一个比另一个更轻,性能更好,容易出错吗?
berkes 2013年

刚刚使用更多信息更新了答案。
GeekRide 2013年

还有更多信息。
GeekRide 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.