国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

Mac os 解決無(wú)法使用localhost連接mysql問(wèn)題

2024-07-24 13:05:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天在mac上搭建好了php的環(huán)境,把先前在window、linux下運(yùn)行良好的程序放在mac上,居然出現(xiàn)訪問(wèn)不了數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)連接的host用的是localhost,可以確認(rèn)數(shù)據(jù)庫(kù)配置是正確的,因?yàn)樵趈ava中使用localhost訪問(wèn)正常,另外通過(guò)命令行工具也能正常訪問(wèn)。當(dāng)把localhost換成127.0.0.1或者本機(jī)的IP時(shí),居然正常了。以前一直認(rèn)為localhost與127.0.0.1是一回事,現(xiàn)在事實(shí)證明它們其中還是有區(qū)別的。

在網(wǎng)上搜索了一下它們的區(qū)別,有人已經(jīng)說(shuō)的很明白了,具體可以參看:。它們的主要區(qū)別是localhost是通過(guò)socket方式來(lái)連接,而127.0.0.1則是走的TCP協(xié)議。

上面提到區(qū)別就是導(dǎo)致mac下無(wú)法連接數(shù)據(jù)庫(kù)的原因。那為什么socket方式無(wú)法連接呢?由于mac os lion上已經(jīng)自帶了apache和php,我的環(huán)境使用就使用默認(rèn)的,mysql服務(wù)是在官網(wǎng)下載dmg安裝最近版本,php的配置文件(/ect/php.ini)中設(shè)置有三個(gè)地方(mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket)設(shè)置了mysql socket文件存放的位置,其默認(rèn)值為/var/mysql/mysql.sock。查看mysql服務(wù)使用的socket文件有兩種方式
方法1:

復(fù)制代碼 代碼如下:


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

方法二:

復(fù)制代碼 代碼如下:


echo "status" | mysql | grep "socket"

注意:如果mysql設(shè)置了密碼,使用-u,-p來(lái)指定用戶名和密碼
這里看到mysql的socket文件存放位置為/tmp/mysql.sock。

看到這兒應(yīng)該知道問(wèn)題所在了吧,使用localhost連接失敗的原因?yàn)樵趕ocket的方式下,php默認(rèn)配置的mysql服務(wù)的socket文件不存在,所以導(dǎo)致連接失敗,如果把連接失敗的錯(cuò)誤信息dump出來(lái),你應(yīng)該會(huì)看到錯(cuò)誤信息中包含了“No such file or directory”。

知道原因就容易修改了,只需要把php配置文件中mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket這三項(xiàng)值修改為mysql服務(wù)配置對(duì)應(yīng)值即可,修改好后需要重啟apache服務(wù)。當(dāng)然也可以修改mysql配置文件中的socket信息,使其保持一致即可,修改好后重啟mysql服務(wù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 建宁县| 凤阳县| 广南县| 镇宁| 清新县| 沁阳市| 乌拉特前旗| 中江县| 明光市| 涿州市| 安多县| 始兴县| 秭归县| 本溪市| 西贡区| 大姚县| 宁阳县| 遂溪县| 山东| 玉环县| 昭觉县| 平顶山市| 岱山县| 汕头市| 铜梁县| 永川市| 大港区| 江阴市| 新河县| 双流县| 登封市| 昌乐县| 洮南市| 化隆| 青龙| 会泽县| 大埔区| 股票| 米脂县| 福贡县| 陆丰市|