4

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

我的 Web 主机上的 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)

4

6 回答 6

2

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

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

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

此外,使用 mysqli 或 PDO 代替即将弃用的 mysql。

于 2012-10-23T04:39:31.003 回答
0

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

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

于 2012-10-23T04:45:08.597 回答
0

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

有时服务器不支持套接字连接,你会得到这样的错误:

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

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

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

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


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

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

PHP 帮助说(关于 mysql_connect):

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


有关与 localhost 连接的更多信息 - MySQL 参考中的信息

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

请注意,“--port”和“-P”选项是在 PHP 以外的其他上下文中描述的,但连接机制的工作原理类似,并且localhost是“特殊”名称,与 PHP、控制台或其他一些软件无关。

于 2012-10-23T04:59:52.803 回答
0

您是否尝试过在 google 中输入类似的内容?

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

于 2012-10-23T05:33:42.757 回答
0

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

另请参阅此 SO question

于 2012-10-23T04:39:09.220 回答
-1

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

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

$con = mysql_connect("localhost", "username", "password");
于 2012-10-23T04:40:44.250 回答