中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫主機127.0.0.1與localhost區別是什么

發布時間:2021-06-17 14:29:53 來源:億速云 閱讀:215 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹MySQL數據庫主機127.0.0.1與localhost區別是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

可能有很多朋友都會碰到一個問題不知道127.0.0.1與localhost有什么區別,但是有的時間會發現使用localhost連接不了,但是改成127.0.0.1即可了連接了,那么他們會有什么區別呢,下面我給大家介紹。

  1. mysql -h 127.0.0.1 的時候,使用 TCP/IP 連接, mysql server 認為該連接來自于127.0.0.1或者是"localhost.localdomain"

  2. mysql -h localhost 的時候,是 不使用TCP/IP 連接的,而使用 Unix socket ;此時,mysql server則認為該client是來自"localhost"

  3. mysql權限管理中的"localhost"有特定含義:

注意:雖然兩者連接方式有區別,但當localhost 為默認的127.0.0.1時,兩種連接方式使用的權限記錄都是以下的1.row的記錄(因為記錄在前,先被匹配)

*************************** 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

發現問題

昨天在幫同事編譯安裝Linux環境時,遇到一個問題:

Web服務器是apache,數據庫是MySQL。

于是寫了一個測試連接數據庫的PHP頁面:

$mysql = mysql_connect('localhost','root','');

打開 http://localhost/test.php 測試

提示:Can't connect to local MySQL server through socket...

檢查環境正常

以為是數據庫沒有啟動,于是查看一下進程,MySQL在進程里,重啟了一下MySQL.

使用 mysql -u root -p 可以進入MySQL操作界面

直接使用/usr/local/php5/bin/php /web/test.php執行可以連上數據庫

apache也重啟了,一樣無效

疑點:為何網頁執行失敗,命令執行卻成功

這下就郁悶了,使用php命令直接執行就成功,通過網頁執行就失敗。難道是apache導致?網上搜索了大堆資料也沒找到解決方案,重新編譯安裝apache問題依舊。

把localhost改成127.0.0.1成功

把localhost改成127.0.0.1后竟然連接成功了,開始陷入思考困局:localhost失敗127.0.0.1卻成功?

ping localhost 地址是127.0.0.1沒錯

打開hosts加入

127.0.0.1 qttc

使用qttc當主機連接也正常,唯獨就不認localhost。

localhost連接方式不同導致

為了了解PHP連接數據庫時,主機填寫localhost與其它的區別閱讀了大量資料,最后得知:

當主機填寫為localhost時mysql會采用 unix domain socket連接

當主機填寫為127.0.0.1時mysql會采用tcp方式連接

這是linux套接字網絡的特性,win平臺不會有這個問題

解決方法

在my.cnf的[mysql]區段里添加

protocol=tcp

以上是“MySQL數據庫主機127.0.0.1與localhost區別是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

冕宁县| 定兴县| 谢通门县| 翁源县| 仙居县| 盐池县| 沾化县| 贵南县| 深水埗区| 昔阳县| 怀仁县| 鲜城| 台北县| 台中市| 益阳市| 凤凰县| 凤台县| 苏尼特右旗| 兴和县| 维西| 淅川县| 新巴尔虎左旗| 呼伦贝尔市| 赞皇县| 安仁县| 女性| 扎鲁特旗| 博罗县| 阿瓦提县| 松滋市| 左贡县| 清原| 斗六市| 和林格尔县| 鲁山县| 镇远县| 平南县| 麻栗坡县| 石渠县| 曲松县| 梧州市|