2012-04-01 120 views
0

可能重複:
Remote mysql connectionMySQL的不允許遠程連接

我已經做了一個C++應用程序,需要連接到MySQL數據庫,錯誤等連接時,你得到我的MySQL服務器是: 主機不允許連接到MySQL。

我一直在閱讀一些解決方案,但他們需要你有用戶的IP,我怎麼能允許連接從任何電腦?

+0

你爲什麼要這麼做?請不要,至少使用VPN連接。你試圖實現的模式是什麼? – 2012-04-01 14:28:00

+0

我的應用程序需要MySQL,它的意思是遠程連接到它,我不打算讓它不受保護,只允許任何PC使用我的應用程序連接... – user1126068 2012-04-01 14:44:34

+0

MySQL並不意味着要遠程連接。即使不考慮安全問題,您也會很快觸及併發連接。幫你一個忙,並寫一些抽象訪問你的數據庫的API層。 – 2012-04-01 15:02:05

回答

4

使用通配符(%)作爲主機名創建用戶。以下是創建名爲「my_user」的用戶並授予他們「my_database」數據庫所有權限的示例。

GRANT ALL ON my_database.* TO [email protected]'%' IDENTIFIED BY 'some_password'; 

您可能想考慮授予更少的權限。例如,也許你只需要給這個遠程用戶SELECT權限。

GRANT SELECT ON my_database.* TO [email protected]'%' IDENTIFIED BY 'some_password'; 
+0

thx很多,它的作品! – user1126068 2012-04-01 16:50:13

1

最佳做法是在數據庫和外部世界之間放置一層。我的最佳選擇是託管一個帶有免費虛擬主機的mysql數據庫,然後使用PHP腳本來使用稱爲web服務的東西來公開可用於您的應用的函數。

從個人的經驗,有一個NuSOAP庫,這將使這容易。當你在Visual Studio中構建時,你可以在你的web服務中添加一個「web refrence」,它將爲你建立連接它的代碼。