Mysql
Docker 容器中 MariaDB 的超時錯誤
我有一個 ArchLinux 安裝,Docker 和MariaDB在容器中執行。
現在,當我嘗試連接到數據庫時,我得到以下歐元:
MySQL said: Can't connect to MySQL server on '$mydomain' (4)
.我為使其可用所做的事情:
- 創建 root 使用者並授予
%
訪問權限。custom.cnf
具有以下內容的已安裝文件夾:[mysqld] bind-address=0.0.0.0
- 暴露
3306:3306
於docker run
- 配置的 UFW
ufw status | grep 3306
:3306 ALLOW Anywhere 3306 (v6) ALLOW Anywhere (v6)
我不確定我錯過了什麼。我可以從容器內使用給定的密碼進行連接,但不能從我的本地主機連接。
提前致謝!
**編輯:**我設法通過容器的內部 ip 從另一個容器連接,所以它可以在我認為的主機上工作?也許這是一個防火牆問題(但這沒有意義,因為禁用 ufw 和 iptables 沒有任何幫助)。
這是一個 Docker 問題,添加
--net=host
到docker run
修復它。有關詳細資訊,請參閱#13914。
如果您使用的是 docker compose,您可以將其添加到 docker-compose.yml 文件中,以查看問題是否仍然存在。
網路模式:“主機”