Mariadb

允許遠端連接到 mariaDB docker conatiner?

  • September 12, 2021

所以我真的是 docker 新手,我可能在這裡錯誤地使用它,但它使啟動 mysql 數據庫非常容易,所以這就是為什麼我想試一試,而不是在我的遠端(區域網路)機器上安裝實例。

所以我想從另一台/遠端機器訪問 MariaDB 數據庫,但是在我看來,它似乎提供了過時的資訊,(甚至官方的 mariaDB 文件)沒有提供正確的資訊,我嘗試了他們所說的,我相信那隻是用於從執行容器的同一台機器訪問容器。我看到的任何文章或 *exchange 答案都會告訴您進入容器的 bash 終端,然後更改/etc/msql/my.cnf為擁有bind_address=0.0.0.0,這已過時,因為bind_address即使在 my.cnf 中也不再存在,/etc/mysql/mariadb.conf.d/50-server.cnf並且其中有一條線指出

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

我也找不到對我可以設置的環境變數的任何引用,以便允許我遠端訪問它,所以我真的不知道在哪裡查看如何更改配置以允許我訪問數據庫我的網路。

是的,我有一個允許遠端連接的使用者設置。任何和所有的幫助表示讚賞。

附帶說明一下,改變這一點似乎真的很難,所以它讓我相信這是不好的做法或應該避免,然後這讓我相信我理解 docker 錯誤,我認為 docker 應該允許你執行不相互互動的小型軟體實例,所以如果一個實例搞砸了,其餘的都不會,但為什麼他們如此打算不允許遠端連接?

監聽遠端連接的配置在容器之外。

容器預設配置mariadb監聽容器內的所有介面。

docker/podman -por-P需要將這些介面暴露給執行容器的主機。

如果需要外部連接來偵聽非本地 IP(-p預設情況下將綁定到所有介面的一部分)。此外,防火牆和路由配置是必需的,可能不是預設配置。

danblack已經回答了您的問題,但我想指出您可能不應該讓您的容器與主機系統通信。在我看來,你懷疑這是一種不好的做法是正確的。

你想做什麼?手動連接數據庫?這樣做很容易。跑:

docker exec -ti <container_name> mariadb -u<user> -p<password>

或者您希望應用程序使用 MariaDB?在這種情況下,應用程序應該在容器中執行。MariaDB 容器和應用程序容器應該訪問同一個Docker 網路。對於 Docker 初學者來說,這可能有點棘手,但您可以使用Docker Compose自動創建和維護容器。

引用自:https://dba.stackexchange.com/questions/299373