[英]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.