簡體   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