簡體   English   中英

訪問在 ubuntu 服務器上運行的 docker 上運行的 MySQL

[英]Accessing a MySQL running on docker running on ubuntu server

我有一個在 docker 容器中運行的 mysql 數據庫,該容器本身在 ubuntu 服務器上運行。 我現在希望能夠從同一網絡上的外部計算機訪問 mysql 數據庫。

據我所知,docker 在 ubuntu 服務器中運行自己的環境。 在這個 docker 環境中,MySQL 數據庫正在運行。 因此,使用 mysql 從本地主機(服務器)訪問 MySQL 數據庫很順利。

我現在正在嘗試使用 MySQL、Toad( https://www.quest.com/toad/ ) 和 python 從外部計算機訪問 MySQL。

我收到以下錯誤。

來自 MySQL:錯誤 2005 (HY000):未知的 MySQL 服務器主機'130.235.168.214;' (0)

來自 Toad:嘗試讀取流的末尾。

來自 Python:Traceback(最近一次調用最后一次):文件“”,第 1 行,在文件“C:\\Anaconda\\lib\\site-packages\\MySQLdb__init__.py”中,第 86 行,在 Connect 中 return Connection(*args, ** kwargs) 文件“C:\\Anaconda\\lib\\site-packages\\MySQLdb\\connections.py”,第 204 行,在其中super(Connection, self)。 init (*args, **kwargs2) _mysql_exceptions.OperationalError: (2013, “在‘讀取初始通信數據包’時失去與 MySQL 服務器的連接,系統錯誤:0”)

所以我現在想知道是否需要將 MySQL 的“標准端口”3306 轉發到一個端口,然后我可以使用該端口訪問服務器內部 docker 中的 MySQL? 我從這里怎么走? 非常感謝!

如果你在 Linux 機器上運行這個 mysql docker 容器,那么

  1. 您需要公開 mysql docker 容器的端口(參考: https : //bobcares.com/blog/docker-port-expose/

如果您在虛擬機中運行此容器,則

  1. 您還需要轉發虛擬機端口。 (參考https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM