簡體   English   中英

PHP / mysql在OS X Mavericks上要求127.0.0.1

[英]PHP/mysql requiring 127.0.0.1 on OS X Mavericks

在Mac OS X 10.6上,我可以使用

$mysql = mysql_connect(localhost,user,password)

但是,如果在Mac OS X 10.9(Mavericks)中使用相同的命令,則會收到錯誤消息:

Warning: mysql_connect(): No such file or directory

如果我使用$mysql = mysql_connect("127.0.0.1",user,password) ,它可以正常工作,但是我不想在任何地方進行更改。

我已經在該站點上閱讀到存在套接字問題,但是我已經在php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

關於如何使mysql_connect(localhost,user,password) work on 10.9任何想法嗎?

您需要編輯主機名文件,但是我是PC用戶,因此無法在Mac上使用。 無論如何,這是我發現的,我想它與您的OS版本相同

步驟1 –打開Terminal.app

通過在Spotlight上鍵入Terminal或進入Applications-> Utilities-> Terminal,要么。

步驟2 –打開主機文件

在剛剛打開的終端上鍵入以下內容來打開主機:

1 $ sudo nano / private / etc / hosts出現提示時,輸入用戶密碼。

步驟3 –編輯主機文件

主機文件包含一些注釋(以#符號開頭的行)以及一些默認的主機名映射(例如127.0.0.1 –本地主機)。 來源: http : //decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/

您需要為127.0.0.1-localhost(如果尚未存在)寫一個條目。

如果您以localhost作為第一個參數調用mysql_connect() ,PHP將嘗試使用UNIX域套接字而不是TCP進行連接。

可能它查找錯誤的套接字名稱和/或您的mysql僅偵聽TCP。

您應該檢查mysql設置(/ etc / mysql?搜索套接字)和php mysql.default_socket配置變量。 (使用pdo連接時會使用您提到的pdo_mysql.default_socket 。)

例如在我的debian上:

$ grep socket /etc/mysql/my.cnf 
socket          = /var/run/mysqld/mysqld.sock

(否則,如果您使用任何類型的db抽象層,並且僅將連接詳細信息存儲一次,您的生活將會更加輕松。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM