[英]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 address
或domain
。
在大多数情况下,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.