2014-11-24 138 views
3

我在Docker容器中構建了一個Django應用程序。並在IP 192.168.1.13的服務器上運行它。我設置Django settings.py來連接192.168.1.6的mysql服務器。它是一個外部獨立服務器。但是當我運行容器時,它總是說用戶[email protected]的訪問被拒絕。 Django如何連接到docker host ip但不是定義的服務器ip?如何在Docker容器中連接外部mysql服務器

任何機構都可以幫我解決這個問題嗎?非常感謝。

有兩臺服務器。

服務器A是192.168.1.13。有一個Django Docker容器在上面運行。

服務器B是192.168.1.6。它是一個MySQL服務器。

而我想django容器連接服務器B.但它報告無法連接到它的主機服務器。

回答

1

看起來您已授予訪問權限,只能通過本地主機訪問您的用戶。試試你的MySQL服務器上執行以下操作:

GRANT ALL PRIVILEGES ON * . * TO 'xxx'@'192.168.1.13'; 

請注意,上述@後的IP地址是指MySQL客戶端從(Django的容器)連接的地址,MySQL服務器的不是地址。

+0

謝謝您的回覆。但我認爲你的建議不會奏效。因爲192.168.1.13是我的碼頭主機。它確實不是MySQL服務器。 MySQL服務器IP是192.168.1.6。我將它設置在settings.py中,但是django實例嘗試連接192.168.1.13。這是我的問題。 – morphinewan 2014-11-24 11:07:59

+0

答案中指定的IP地址是指用戶從中連接的主機,而不是其連接的主機。你測試了我的命令嗎? – dukebody 2014-11-24 14:15:23

+0

謝謝。我很愚蠢。我誤解了你的建議。你的回答是正確的。我的問題已解決。再次感謝你。 – morphinewan 2014-11-25 01:02:25

相關問題