2013-03-11 199 views
1

我在我的Mac上使用MAMP有一個MySQL數據庫。我需要使用來自遠程服務器的IP腳本(例如184.173.9)的PHP腳本連接到這個數據庫....我已經嘗試了2天,現在沒有運氣。如何在Mac的MAMP中允許遠程連接到mysql數據庫

我試過一些論壇,他們要求在MAMP的my.cnf文件中註釋掉skip-networking並在遠程服務器的IP上使用bind-address。首先,我沒有在MAMP中找到my.cnf文件,但最終從Library/support-files/my-medium.cnf中找到了一個。我將它複製並放在tmp/mysql/my.cnf中。但沒有任何工作。

我還關閉了系統偏好設置/安全&隱私中的防火牆。

我使用連接看起來像這樣的PHP代碼:

的mysql_connect( '176.249.200 ....:3306', '測試', '測試')或死亡(mysql_error());

你能否給我建議我還缺什麼?

+0

的IP是從您的計算機或另一臺服務器? – 2013-03-11 17:18:28

+0

你能提供'SHOW GRANTS FOR'test'的輸出嗎,'' – Dancrumb 2013-03-11 17:42:17

回答

0

以下是輸出:

授予所有特權。 TO '測試' @ '%' IDENTIFI ...

GRANT ALL PRIVILEGES ON測試。* TO '測試' @ '%'

GRANT ALL PRIVILEGES ON easytask。* TO '測試' @ '%' ...

IP地址184.173.9 ....是一個專用的遠程服務器,我有PHP腳本。而176.249.200 ....是我的本地IP,3306是MySQL端口。

0

首先確保它連接(你應該得到一個連接被拒絕,而不是超時/連接錯誤)。你可以通過執行測試:

mysql -h ip.addr.goes.here -p -u test 

,如果它不能連接,那麼它就是一個防火牆問題或配置問題。

如果它連接並且權限被拒絕,那麼它可能是一個授權問題。創建一個用戶,然後授予表的訪問

CREATE USER 'dbusername'@'%' IDENTIFIED BY 'some_pass'; 
    GRANT ALL PRIVILEGES ON *.* TO 'dbusername'@'%' 

注意,你如果用本地主機替換%,從一個特定的IP,如果你指定IP或者只有遠程如果指定%用戶會得到本地訪問。 MySQL的頁面http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

後,沖水特權的更多細節,以確保他們在行動:

flush privileges