程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mac os 處理沒法應用localhost銜接mysql成績

Mac os 處理沒法應用localhost銜接mysql成績

編輯:MySQL綜合教程

Mac os 處理沒法應用localhost銜接mysql成績。本站提示廣大學習愛好者:(Mac os 處理沒法應用localhost銜接mysql成績)文章只能為提供參考,不一定能成為您想要的結果。以下是Mac os 處理沒法應用localhost銜接mysql成績正文


明天在mac上搭建好了php的情況,把先前在window、linux下運轉優越的法式放在mac上,竟然湧現拜訪不了數據庫,數據庫銜接的host用的是localhost,可以確認數據庫設置裝備擺設是准確的,由於在java中應用localhost拜訪正常,別的經由過程敕令行對象也能正常拜訪。當把localhost換成127.0.0.1或許本機的IP時,竟然正常了。之前一向以為localhost與127.0.0.1是一回事,如今現實證實它們個中照樣有差別的。

在網上搜刮了一下它們的差別,有人曾經說的很明確了,詳細可以參看:http://www.jb51.net/article/50422.htm。它們的重要差別是localhost是經由過程socket方法來銜接,而127.0.0.1則是走的TCP協定。

下面提到差別就是招致mac下沒法銜接數據庫的緣由。那為何socket方法沒法銜接呢?因為mac os lion上曾經自帶了apache和php,我的情況應用就應用默許的,mysql辦事是在官網下載dmg裝置比來版本,php的設置裝備擺設文件(/ect/php.ini)中設置有三個處所(mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket)設置了mysql socket文件寄存的地位,其默許值為/var/mysql/mysql.sock。檢查mysql辦事應用的socket文件有兩種方法
辦法1:


echo "show variables" | mysql | grep "socket"

辦法二:


echo "status" | mysql | grep "socket"

留意:假如mysql設置了暗碼,應用-u,-p來指定用戶名和暗碼
這裡看到mysql的socket文件寄存地位為/tmp/mysql.sock。

看到這兒應當曉得成績地點了吧,應用localhost銜接掉敗的緣由為在socket的方法下,php默許設置裝備擺設的mysql辦事的socket文件不存在,所以招致銜接掉敗,假如把銜接掉敗的毛病信息dump出來,你應當會看到毛病信息中包括了“No such file or directory”。

曉得緣由就輕易修正了,只須要把php設置裝備擺設文件中mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket這三項值修正為mysql辦事設置裝備擺設對應值便可,修正好後須要重啟apache辦事。固然也能夠修正mysql設置裝備擺設文件中的socket信息,使其堅持分歧便可,修正好後重啟mysql辦事。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved