- 是否使用
localhost
inmysql_connect()
使連接速度快於使用127.0.0.1
? - PHP腳本和mySQL之間的連接類型是什麼(當使用
mysql_connect()
函數時)?它是TCP/IP嗎?
回答
- Windows和Linux的區別。如果你使用unix域套接字,它會比使用TCP/IP稍微快一些(因爲你擁有更少的開銷)。
- Windows使用TCP/IP作爲默認設置,而Linux嘗試使用Unix域套接字(如果選擇localhost和TCP/IP,如果選擇127.0.0.1)。
「localhost」表示本地套接字連接,而127.0.0.1表示TCP/IP。是的,套接字比TCP/IP更快。
從http://pl.php.net/mysql_connect
引用每當你指定「localhost」或「本地主機:端口」爲服務器,MySQL客戶端庫將覆蓋這一點,並嘗試連接到本地套接字(在Windows命名管道)。如果你想使用TCP/IP,使用「127.0.0.1」而不是「localhost」。如果MySQL客戶端庫嘗試連接到錯誤的本地套接字,則應該在PHP配置中設置正確的路徑,並將服務器字段留空。
PHP的網站說:
注:
每當你指定 「localhost」 或 「本地主機:端口」 爲服務器,MySQL的 客戶端庫將覆蓋這一點,並 嘗試連接到本地套接字 (在Windows上命名管道)。如果您希望 使用TCP/IP,請使用「localhost」的「127.0.0.1」而不是 。如果MySQL客戶端 庫試圖連接到錯誤的 本地套接字,則應該像設置您的PHP 一樣設置 正確的路徑,並將服務器 字段留空。
我想速度差別太低了,你不應該擔心。
不可以,建議使用127.0.0.1,因爲Windows 7在選擇IPv4 & IPv4時存在問題。我試過這個,如果我使用本地主機,頁面重新加載大約1秒(1,04秒),當我使用127.0.0.1時,頁面重新加載50毫秒。兩者都在Windows 7下使用。
在Windows XP中,它沒有區別。
有相同的經驗。從本地主機到127.0.0.1,我的延遲從1秒降到5毫秒。謝謝! – 2014-09-25 16:08:24
對於Unix,在/etc/mysql/my.cnf這一行添加到客戶端塊之後 [client]
:
protocol=tcp
用於蘋果,這裏的解決方案:
連接到MySQL使用在MAC上的本地主機而不是127.0.0.1。很長一段時間以來,我一直在使用127.0.0.1在我的開發平臺上連接到MySQL,因爲某些原因localhost不工作。原因是127.0.0.1使用TCP/IP,localhost使用套接字。 php.ini文件指向mysql.sock的錯誤位置,所以你只需要改變它,重新啓動apache和瞧!
Open php.ini: /private/etc/php.ini
Find the following line: mysql.default_socket = /var/mysql/mysql.sock
Replace with: mysql.default_socket = /tmp/mysql.sock
Restart apache: apachectl restart
注意:如果你沒有一個php.ini文件,你需要通過http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/
- 1. WCF和127.0.0.1 vs localhost
- 2. 提取API與localhost/127.0.0.1不兼容
- 3. localhost和127.0.0.1不一樣?
- 4. 'localhost'和'127.0.0.1'有什麼區別?
- 5. 如何在ubuntu中合併localhost和127.0.0.1
- 6. 在localhost上綁定127.0.0.1時EADDRNOTAVAIL?
- 7. PHP MYSQL - 127.0.0.1和localhost之間的區別
- 8. localhost working 127.0.0.1在Safari中損壞
- 9. Glassfish的變化JDBC池從localhost 127.0.0.1
- 10. 127.0.0.1 works,localhost not,在apache2服務器上
- 11. ssh localhost連接由127.0.0.1關閉?
- 12. 無法在wamp中訪問localhost或127.0.0.1
- 13. localhost/127.0.0.1 - 無法聯繫到此站點
- 14. 127.0.0.1 works,localhost not-VH - Zend Ce,Mac
- 15. 的CentOS與AutoSSH 127.0.0.1與*
- 16. 如何在localhost或127.0.0.1:8000中集成gitlab或github帳戶設置與laravel?
- 17. 將localhost重定向到127.0.0.1:8080之類的其他端口?
- 18. Net :: HTTP.start適用於127.0.0.1,但不適用於'localhost'。爲什麼?
- 19. 如何immutant被配置成服務除localhost(127.0.0.1)以外的IPS
- 20. 錯誤org.apache.hadoop.hdfs.server.datanode.DataNode:java.io.IOException:調用localhost/127.0.0.1:54310本地異常失敗
- 21. 如何在Tomcat文件中將localhost:8084重置爲http://127.0.0.1:8084?
- 22. 使用DB_HOST = localhost和127.0.0.1運行Laravel 5項目PDOException
- 23. 無法通過HttpClient連接到UWP中的127.0.0.1(localhost)Device Portal
- 24. 獲取org.elasticsearch.transport.NodeDisconnectedException:[] [inet [localhost/127.0.0.1:9300]] [cluster/nodes/info]斷開連接
- 25. 無法連接http:// localhost:37265或http://127.0.0.1:37265
- 26. 如何將apache2 127.0.0.1名稱從localhost更改爲另一個域?
- 27. Django不斷地將URL從http:// localhost /更改爲http://127.0.0.1:8080/
- 28. ASP.NET - 告訴localhost和127.0.0.1之間的區別
- 29. 爲什麼apache會拒絕連接到OSX上的localhost 127.0.0.1?
- 30. 誰選了127.0.0.1爲localhost,爲什麼?它有什麼意義?
謝謝複製提供的默認稱爲php.ini.default
!爲什麼Apache不通過基於TCP/IP或基於套接字的連接與PHP進行交互? – Joel 2010-09-15 08:44:01
Apache使用mod_php或使用TCP/IP或Unix域套接字連接到PHP(當配置爲通過fastcgi運行時)。 – halfdan 2010-09-15 08:49:14
+ linux中的令人討厭的事情是當你指定'localhost'作爲主機和一個特定的端口時,它只是忽略整個端口位並使用默認套接字,而不是在單個機器上運行多個服務器時需要的東西(因此不同的端口..)。 – Wrikken 2010-09-15 10:21:21