MySQL數(shù)據(jù)庫(kù)主機(jī)127.0.0.1與localhost區(qū)別
可能有很多朋友都會(huì)碰到一個(gè)問(wèn)題不知道127.0.0.1與localhost有什么區(qū)別,但是有的時(shí)間會(huì)發(fā)現(xiàn)使用localhost連接不了,但是改成127.0.0.1即可了連接了,那么他們會(huì)有什么區(qū)別呢,下面我給大家介紹。
- mysql -h 127.0.0.1 的時(shí)候,使用 TCP/IP 連接, mysql server 認(rèn)為該連接來(lái)自于127.0.0.1或者是"localhost.localdomain"
- mysql -h localhost 的時(shí)候,是 不使用TCP/IP 連接的,而使用 Unix socket ;此時(shí),mysql server則認(rèn)為該client是來(lái)自"localhost"
- mysql權(quán)限管理中的"localhost"有特定含義:
注意:雖然兩者連接方式有區(qū)別,但當(dāng)localhost 為默認(rèn)的127.0.0.1時(shí),兩種連接方式使用的權(quán)限記錄都是以下的1.row的記錄(因?yàn)橛涗浽谇?,先被匹配?/p>
*************************** 1. row *************************** Host: localhost User: root ...... *************************** 2. row *************************** Host: 127.0.0.1 User: root
證明:
shell> mysql -h 127.0.0.1 mysql> status; Currentuser: root@localhost SSL: Notin use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.1.33-log Source distribution Protocol version: 10 Connection: 127.0.0.1 via TCP/IP shell> mysql -h locahostmysql> status; Currentuser: root@localhost SSL: Notin use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.1.33-log Source distribution Protocol version: 10 Connection: Localhost via UNIX socket
發(fā)現(xiàn)問(wèn)題
昨天在幫同事編譯安裝Linux環(huán)境時(shí),遇到一個(gè)問(wèn)題:
Web服務(wù)器是apache,數(shù)據(jù)庫(kù)是MySQL。
于是寫(xiě)了一個(gè)測(cè)試連接數(shù)據(jù)庫(kù)的PHP頁(yè)面:
$mysql = mysql_connect('localhost','root','');
打開(kāi) http://localhost/test.php 測(cè)試
提示:Can't connect to local MySQL server through socket...
檢查環(huán)境正常
以為是數(shù)據(jù)庫(kù)沒(méi)有啟動(dòng),于是查看一下進(jìn)程,MySQL在進(jìn)程里,重啟了一下MySQL.
使用 mysql -u root -p
可以進(jìn)入MySQL操作界面
直接使用/usr/local/php5/bin/php /web/test.php
執(zhí)行可以連上數(shù)據(jù)庫(kù)
apache也重啟了,一樣無(wú)效
疑點(diǎn):為何網(wǎng)頁(yè)執(zhí)行失敗,命令執(zhí)行卻成功
這下就郁悶了,使用php命令直接執(zhí)行就成功,通過(guò)網(wǎng)頁(yè)執(zhí)行就失敗。難道是apache導(dǎo)致?網(wǎng)上搜索了大堆資料也沒(méi)找到解決方案,重新編譯安裝apache問(wèn)題依舊。
把localhost改成127.0.0.1成功
把localhost改成127.0.0.1后竟然連接成功了,開(kāi)始陷入思考困局:localhost失敗127.0.0.1卻成功?
ping localhost 地址是127.0.0.1沒(méi)錯(cuò)
打開(kāi)hosts加入
127.0.0.1 qttc
使用qttc當(dāng)主機(jī)連接也正常,唯獨(dú)就不認(rèn)localhost。
localhost連接方式不同導(dǎo)致
為了了解PHP連接數(shù)據(jù)庫(kù)時(shí),主機(jī)填寫(xiě)localhost與其它的區(qū)別閱讀了大量資料,最后得知:
當(dāng)主機(jī)填寫(xiě)為localhost時(shí)mysql會(huì)采用 unix domain socket
連接
當(dāng)主機(jī)填寫(xiě)為127.0.0.1時(shí)mysql會(huì)采用tcp方式連接
這是linux套接字網(wǎng)絡(luò)的特性,win平臺(tái)不會(huì)有這個(gè)問(wèn)題
解決方法
在my.cnf的[mysql]區(qū)段里添加
protocol=tcp
總結(jié)
以上所述是小編給大家介紹的MySQL數(shù)據(jù)庫(kù)主機(jī)127.0.0.1與localhost區(qū)別,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
mysql5.7.14 解壓版安裝配置方法圖文教程(win10)
這篇文章主要為大家詳細(xì)介紹了win10下mysql5.7.14 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Windows XP系統(tǒng)安裝MySQL5.5.28圖解教程
很多朋友在winxp系統(tǒng)中開(kāi)發(fā)php等,需要安裝mysql數(shù)據(jù)庫(kù),這里簡(jiǎn)單介紹下,如何在xp下安裝mysql軟件,其實(shí)跟其它系統(tǒng)都差不多,主要是軟件對(duì)系統(tǒng)的兼容性2013-05-05連接MySQL出現(xiàn)Host is not allowed to con
這篇文章主要給大家介紹了連接MySQL出現(xiàn)Host is not allowed to connect to this MySQL server 解決方法,文中有詳細(xì)的解決步驟,需要的朋友可以參考下2023-08-08這種sql寫(xiě)法真的會(huì)導(dǎo)致索引失效嗎
這篇文章主要給大家介紹了關(guān)于網(wǎng)上流傳的某種sql寫(xiě)法會(huì)導(dǎo)致索引失效的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用sql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Mysql之如何創(chuàng)建函數(shù)問(wèn)題
這篇文章主要介紹了Mysql之如何創(chuàng)建函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Mysql select in 按id排序?qū)崿F(xiàn)方法
有時(shí)候我們?cè)诤笈_(tái)選擇了一系列的id,我們想安裝填寫(xiě)id的順序進(jìn)行排序,那么就需要下面的order by方法,測(cè)試通過(guò)2013-03-03windows 10下mysql 5.7.21 winx64安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了windows 10下mysql 5.7.21 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02