久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

146次閱讀
沒有評論

共計 2035 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

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

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

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

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

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 區別是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計2035字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 昌乐县| 林西县| 沛县| 衢州市| 和田市| 赣州市| 涟水县| 响水县| 北票市| 界首市| 德惠市| 胶州市| 洪江市| 凤冈县| 万源市| 独山县| 汤阴县| 潜江市| 慈溪市| 天全县| 呼伦贝尔市| 南部县| 长汀县| 盱眙县| 十堰市| 武隆县| 宁城县| 锡林浩特市| 连城县| 河西区| 潞城市| 甘洛县| 科尔| 定兴县| 穆棱市| 阳山县| 交口县| 惠州市| 海晏县| 庆城县| 河西区|