2013-05-09 44 views
0

我有一個運行mysql的遠程服務器。我已經通過改變綁定地址到公共IP來啓用遠程訪問,並評論「skip-networking」這一行。然後,我使用ufw(ubuntu防火牆)打開mysql端口3306遠程MySQL訪問不響應MySQL客戶端

但是,當我嘗試連接服務器時,客戶端超時。所以我用telnet測試連接,並得到期望的響應,就像我在本地服務器上得到的一樣。

我沒有收到任何錯誤,使用mysql客戶端時沒有任何反應,但訪問似乎在telnet中。

有人可以提出我錯過了什麼嗎?

感謝

+1

當「我的客戶端嘗試連接到服務器時超時」時,確切的消息是什麼? – Stephan 2013-05-09 09:49:44

+0

我會去另一條路線。而不是打開mysql的公衆,我會SSH入服務器,然後連接本地 – luksch 2013-05-09 09:59:38

+0

@dragonfly你確定你用來連接從該主機的MySQL用戶有必要的權利? – Stephan 2013-05-09 10:05:34

回答

0

如果它不是一個防火牆問題,那麼也許它的權限問題,嘗試一下本作使用從該主機連接的用戶:

CREATE USER 'user'@'host' IDENTIFIED BY 'pass'; 
GRANT ALL on *.* to 'user'@'host'; 
FLUSH PRIVILEGES; 

UPDATE:

還請從my.cnf檢查bind-address文件

例如,如果綁定到0.0.0.0,則可以使用所有現有帳戶連接到服務器 。但是,如果綁定到127.0.0.1,則服務器 只接受該地址上的連接。在這種情況下,首先請確保 表中的'root'@127.0.0.1'帳戶存在於mysql.user 表中,以便您仍可以連接到服務器以將其關閉。

+0

我認爲我會得到一個訪問被拒絕類型的錯誤,如果我有權限錯誤,但我可能是錯的。我以前使用GRANT ALL ON *。* TO'username'@'%';但是使用SHOW GRANTS不會顯示用戶名。看起來我的權限沒有更新。 – dragonfly 2013-05-09 10:23:46

+0

是的,請嘗試刷新權限 – Stephan 2013-05-09 10:26:20

+0

我在第一次完成授權時確實刷新了,而且我剛剛重試了它,但仍然沒有任何區別。使用SELECT用戶,主機從mysql.user;我可以看到用戶名與主機%,這意味着用戶安裝正確。 – dragonfly 2013-05-09 10:37:58