![](/img/trans.png)
[英]Connection refused when connecting to host mysql db from docker container
[英]Connecting to Docker container from host
我只是拉出並運行了官方的Docker MySQL映像 ,並使其在本地運行在我的機器上:
docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.11
該屏幕上的說明告訴您如何從另一個容器(配置為命令行客戶端)內部連接到MySQL服務器(容器)。 但是我有一個通用的JDBC胖客戶端( SQuirreL ),並且想知道如何連接到我的docker容器。
對於JDBC連接字符串,我需要同時提供一個主機名和一個dbname ,我可以使用什么? 我以為可以從主機操作系統以某種方式訪問Docker容器,但是實際上我還沒有創建任何數據庫,因此我不確定我可以提供什么dbname
值:
jdbc:mysql://<hostname>:3306/<dbname>
您可以通過轉發3306運行實例:
$ docker run --expose=3306 -p 3306 mysql
請參閱傳入端口 。
您指定:
jdbc:mysql://127.0.0.1:3306/<dbname>
您的命令將變為:
$ docker run --name mydb -e MYSQL_ROOT_PASSWORD=12345 -d --expose=3306 -p 3306 mysql:5.7.11
您可能需要更改MySQL配置。
可以通過以下方式進入容器:
$ docker exec -it mydb bash
然后您可以:
$ echo "bind-address = 0.0.0.0" >> /etc/mysql/my.cnf
不要忘記重新加載mysql。
然后,您必須創建數據庫並導入架構(如果需要)。
$ mysql -uroot -p12345 -e"CREATE DATABASE mydb"
$ mysql -uroot -p12345 mydb < mydb-schema.sql
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.