簡體   English   中英

無法從主機連接到在 docker 下運行的 mysql 的套接字?

[英]Can't connect to the socket for mysql running under docker from the host?

我在容器中運行 mySQL。 它和我的應用程序(在不同的 Docker 容器中)似乎運行良好。 我現在正在嘗試使用 Jaspersoft 的 iReport 來開發報告。 我已經設法在主機 Ubuntu 上啟動並運行 iReport。 問題是從主機訪問數據庫。

這是使用 iReport 所必需的,我似乎無法使連接正常工作。 我嘗試查看 mysql 套接字,但它不在正常位置,因為 mySQL 位於 Docker 容器中。 我也在努力讓 JasperReports 服務器在另一個容器中運行。 但我的問題是通過 JDBC 連接從主機連接到在 Docker 中運行的 mySQL 數據庫。

這是 docker-compose.yml https://drive.google.com/open?id=1CY_tPmnot3zSab0BtLE1fJUC7sdD2tyA

iReports 選擇的連接是 jdbc:mysql://localhost/substantiator。 當我嘗試使用 iReport 數據庫測試按鈕“測試”它時,我收到一個要求輸入密碼的彈出窗口。 我嘗試使用與我的應用程序相同的用戶/密碼組合。 它失敗了: SQL 問題:通信鏈接失敗。 在研究這個時,我被要求更新 mysql cnf 文件中的 mySQL 套接字路徑。 但是在我的安裝中,套接字文件不存在(因為它在 docker 中?)。 所以我很難過。 我正在考慮轉移到 mariaDB。 有任何想法嗎?

嗨,您的 MySql 容器從主機公開端口 3306,您可以使用 localhost 進行連接,但是對於某些外部服務,您需要使用主機 IP 地址,並確保端口 3306 對外公開。

暫無
暫無

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

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