我有一個本地web服務器上運行我的macbook,我遇到了一個奇怪的問題。我可以使用像Sequel Pro這樣的程序訪問MySQL,密碼工作和生活都很棒。MySQL本地主機/ 127.0.0.1問題
在PHP中,如果我將db服務器設置爲127.0.0.1,則一切正常。
但是,如果我將數據庫服務器更改爲本地主機,則會出現'root'@'localhost'錯誤的訪問被拒絕的情況。我已經確定MySQL套接字安裝正確,但仍然無法使用本地主機。
任何見解都會很棒。謝謝!
我有一個本地web服務器上運行我的macbook,我遇到了一個奇怪的問題。我可以使用像Sequel Pro這樣的程序訪問MySQL,密碼工作和生活都很棒。MySQL本地主機/ 127.0.0.1問題
在PHP中,如果我將db服務器設置爲127.0.0.1,則一切正常。
但是,如果我將數據庫服務器更改爲本地主機,則會出現'root'@'localhost'錯誤的訪問被拒絕的情況。我已經確定MySQL套接字安裝正確,但仍然無法使用本地主機。
任何見解都會很棒。謝謝!
在你的my.cnf文件,要麼改變你的綁定地址爲localhost或刪除綁定地址完全設置(這會讓MySQL的監聽所有IP的)。
my.cnf文件通常位於/ etc或/ etc/mysql中。
是否有任何重大安全問題去除bind-address設置? – 2014-08-19 23:11:05
如果您的計算機有多個IP地址,那麼您會將您的服務器暴露給所有這些IP。如果你在談論一臺單一的IP機器,我不會指望它是一個問題。 – 2014-10-03 21:49:21
除了邁克爾的話,
還有另一個鏈接:http://dev.mysql.com/doc/refman/5.1/en/connecting.html,它說:
在Unix中,MySQL程序處理的主機名localhost特別,因爲是從你可能不同 方式期望與其他 基於網絡的程序相比。對於連接到本地主機,MySQL程序 嘗試使用Unix套接字文件連接到本地服務器。 即使給出了--port或-P選項來指定端口號 ,也會發生這種情況。
它不是一個典型的TCP/IP連接。如果你有從127.0.0.1:3306到192.168.1.2:3306的本地端口轉發,「mysql -h localhost」會嘗試連接到本地的unix套接字文件。
它不是特定於你的問題(因爲你正在運行php),但希望它有幫助。
這是什麼修復了我。對於默認套接字,PHP.INI默認爲與MySQL不同的位置。要解決,只需要運行這兩個命令來添加一個別名(無需重啓需要):
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
一種ServerFault問題嗎? – fredley 2011-03-08 22:57:41