繁体   English   中英

我应该如何在Web主机上引用MySQL服务器?

[英]How should I refer to a MySQL server on a web host?

使用PHP连接到Web主机上的MySQL数据库时,引用服务器的最佳方法是什么?

我的网络主机上的MySQL管理页面说明服务器的IP地址是什么,但我可以使用除IP号码之外的其他内容吗?

例如。

$con = mysql_connect("l00.50.10.10","user","password");
if (!$con) { die('Could not connect: ' . mysql_error()); }

当我使用localhost我得到这个输出:

无法连接:无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)

您可以使用“localhost”作为主机来引用脚本的系统。

$con = mysql_connect("localhost", "user", "password");

但是,连接到IP很可能是失败的,因为你有一个小写的L,你应该有一个数字(但我希望问题中的IP只是一个例子)。

另外,使用mysqli或PDO而不是mysql,它正处于弃用的边缘。

您可以使用数据库服务器的主机名,例如mydbbox.example.com 使用IP地址可能更快,因为不需要DNS查找。

另见这个问题

这个问题的答案取决于您的主机(或其控制面板)如何配置MySQL权限。 权限是特定于IP或主机名的,因此通常通过IP或主机名连接可能不会具有相同的连接结果。 如果有疑问,我会坚持他们给你的设置。

阅读更多: http//dev.mysql.com/doc/refman/5.0/en/account-names.html

如果数据库主机是同一台计算机 - 请使用localhost 当您使用带有端口号的localhost时,MySQL将通过本地套接字连接,而不是tcpip(网络)。

有时服务器不支持套接字连接,您将收到如下错误:

无法连接:无法通过套接字连接到本地MySQL服务器...

编辑/更正:如果您无法通过套接字连接 - 请使用127.0.0.1 它将强制通过tcpip进行conncetion。

如果数据库服务器安装在其他计算机上 - 您可以使用IP addressdomain

在大多数情况下,IP地址更好,因为即使DNS(域名服务器)无法正常工作或域过期,也可以建立连接。


一个建议 - 在新的应用程序中使用mysqli_而不是mysql_函数 新功能在使用中非常相似,但更安全。

旧的mysql_函数已过时, 不建议用于新的应用程序。 由于与旧的,过时的软件(CMS系统,电子商务系统等)的兼容性,它们仍然可以在PHP中使用

PHP帮助说(关于mysql_connect):

不鼓励使用此扩展名。 相反,应该使用MySQLi或PDO_MySQL扩展。


有关连接localhost的更多信息 - 来自MySQL Reference的信息

在Unix上,MySQL程序特别对待主机名localhost,其方式可能与您期望的与其他基于网络的程序相比有所不同。 对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。 即使给出--port或-P选项指定端口号,也会发生这种情况。 要确保客户端与本地服务器建立TCP / IP连接,请使用--host或-h指定主机名值127.0.0.1

请注意,“ - port”和“-P”选项在PHP之外的其他上下文中描述,但连接机制的工作方式类似, localhost是“特殊”名称,无关紧要是这个PHP,控制台或其他一些软件。

您是否曾尝试输入类似Google的内容?

php无法连接:无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(2)

这主要取决于主机配置的方式。 根据我的经验,您将使用“localhost”,服务器的IP地址或主机设置的某种子域。

我首先测试“localhost”,因为这是大多数共享托管环境的默认设置。

$con = mysql_connect("localhost", "username", "password");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM