簡體   English   中英

從 Intellij 的數據庫工具連接到 MySql Docker-Container

[英]Connect to MySql Docker-Container from Intellij's Database Tool

我創建了一個 docker MySQL 這樣的容器

docker run --detach --name internal-mysql -p 6604:3306 -e MYSQL_ROOT_PASSWORD=user_pass -e MYSQL_DATABASE=internal -e MYSQL_USER=user -e MYSQL_PASSWORD=user_pass mysql

容器運行良好

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e802cd30e6a2 mysql "docker-entrypoint.s…" 42 seconds ago Up 41 seconds 33060/tcp, 0.0.0.0:6604->3306/tcp internal-mysql

在容器內,我檢查了用戶主機,看起來不錯,不是嗎?

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| user             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

但是當我嘗試從 IntelliJ 或我的 Spring-Boot 應用程序連接到該數據庫時,我總是收到相同的錯誤

在此處輸入圖像描述

當然,我嘗試用谷歌搜索並發現在某些情況下它有助於通過docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql找出容器 ip docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" internal-mysql

結果是 172.17.0.2

我試圖通過jdbc:mysql://172.17.0.2:3306/internal-mysql連接

我已經嘗試使用 JDBC MYSQL Driver 8.0.21 和 5.1 都沒有成功。

有什么想法嗎?

由於您在主機的端口6604上發布了 mysql 容器的3306端口 - 當您嘗試從主機連接到您的 mysql docker 容器時,您應該使用6604端口。

暫無
暫無

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

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