2011-03-08 83 views
2

我有一個本地web服務器上運行我的macbook,我遇到了一個奇怪的問題。我可以使用像Sequel Pro這樣的程序訪問MySQL,密碼工作和生活都很棒。MySQL本地主機/ 127.0.0.1問題

在PHP中,如果我將db服務器設置爲127.0.0.1,則一切正常。

但是,如果我將數據庫服務器更改爲本地主機,則會出現'root'@'localhost'錯誤的訪問被拒絕的情況。我已經確定MySQL套接字安裝正確,但仍然無法使用本地主機。

任何見解都會很棒。謝謝!

+1

一種ServerFault問題嗎? – fredley 2011-03-08 22:57:41

回答

4

here

在本地主機上設置root用戶的初始密碼。爲root @ localhost = PASSWORD('new_password');設置密碼爲root @ localhost = PASSWORD('new_password'); FLUSH PRIVILEGES;

+0

這是少選票,但他的問題真正的答案:) – tacone 2011-03-09 00:05:07

1

在你的my.cnf文件,要麼改變你的綁定地址爲localhost或刪除綁定地址完全設置(這會讓MySQL的監聽所有IP的)。

my.cnf文件通常位於/ etc或/ etc/mysql中。

+0

是否有任何重大安全問題去除bind-address設置? – 2014-08-19 23:11:05

+0

如果您的計算機有多個IP地址,那麼您會將您的服務器暴露給所有這些IP。如果你在談論一臺單一的IP機器,我不會指望它是一個問題。 – 2014-10-03 21:49:21

5

除了邁克爾的話,

還有另一個鏈接: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),但希望它有幫助。

0

這是什麼修復了我。對於默認套接字,PHP.INI默認爲與MySQL不同的位置。要解決,只需要運行這兩個命令來添加一個別名(無需重啓需要):

mkdir /var/mysql 
ln -s /tmp/mysql.sock /var/mysql/mysql.sock 

Source

相關問題