簡體   English   中英

無法從主機連接到Mysql docker容器

[英]Cant connect to Mysql docker container from host

我在Windows上運行docker,然后像這樣用MySql啟動docker容器

docker run -p 3306:3306 --name test -e MYSQL_ROOT_PASSWORD=secret-pw -d mysql/mysql-server:5.5

然后在我的主機上,啟動Mysql工作台並嘗試連接,但它不起作用。

docker inspect test揭示172.17.0.2上的IP地址,但是當我ping通此命令時,我沒有得到回復

在Linux主機上進行了這項工作,我敢肯定我已經完成了完全相同的步驟

我究竟做錯了什么 ?

幫助文檔: https : //docs.docker.com/samples/library/mysql/

圖片鏈接: https : //store.docker.com/images/mysql

命令: docker run --name mysql_container_name --expose = 3306 -p 3306 -v / my / own / datadir:/ path / to / data / dir -e MYSQL_ROOT_PASSWORD = root_pwd -d mysql:tag-字符集服務器= utf8mb4-整理服務器= utf8mb4_unicode_ci

mysql_container_name:Docker容器名稱

暴露:容器暴露端口

p:主機建立端口

/ path / to / data / dir:容器與主機之間的共享路徑

root_pwd:MySQL的根密碼

標簽:存儲庫標簽

utf8mb4:mysql服務器字符集和排序規則類型

utf8mb4_unicode_ci:mysql服務器字符集和排序規則類型

示例: docker run --expose = 3306 -p 3306 --name mysql -v / my / own / datadir:/ opt / mysql -e MYSQL_ROOT_PASSWORD = 0112358139 -d mysql:latest --character-set-server = utf8mb4-整理服務器= utf8mb4_unicode_ci

請按照以下步驟進行遠程連接:

docker exec -it mydb bash->這將連接到mySql容器。

echo“ bind-address = 0.0.0.0” >> /etc/mysql/my.cnf->這將更新my.cnf文件。

服務mysql restart->重新啟動mySql服務。

退出-> mySql容器。

docker檢查mysql | grep IPAddress-> grep容器的IP地址。

mysql -h 172.17.0.2 -u root –p->遠程連接到mySql。

您的主機3306端口應轉發到容器,因此請嘗試在localhost:3306上進行連接。 當我嘗試復制時,得到“不允許主機172.17.0.1連接到該MySQL服務器”,這意味着它至少已通過。

關於后者的更多信息: https : //github.com/fideloper/docker-mysql/issues/10

暫無
暫無

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

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