docker容器的程式連線宿主機的MySQL

2021-09-24 13:14:39 字數 756 閱讀 4971

docker裡面的**生成的資料需要寫入到宿主機的mysql伺服器上,想要用本地的資料庫測試自己的**正確性,專案程式安裝在docker容器中,於是必定要在docker容器裡訪問到本地的資料庫。

(1)在docker容器裡localhost並不是指宿主機的localhost,因此不能在容器中通過localhost:3306訪問到宿主機的mysql。

(2)docker在執行時就建立了虛擬網絡卡,並命名為docker0,可以在宿主機上執行ifconfig看到它,這就是宿主機建立的網橋,用於與各個容器之間通訊。

(3)宿主機在與容器同一區域網的ip位址一般是docker0對應的ip位址段的首個位址(如172.17.0.1),因此,可以在容器裡通過172.17.0.1:3306訪問到宿主機的mysql伺服器。

如果用172.17.0.1:3306仍然無法訪問到宿主機的話,需要設定一下mysql的訪問許可權:

mysql>grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;

mysql>flush privileges;

// 其中各字元的含義:

// *.* 對任意資料庫任意表有效

// "root" "12345678" 是資料庫使用者名稱和密碼

// '%' 允許訪問資料庫的ip位址,%意思是任意ip,也可以指定ip

// flush privileges 重新整理許可權資訊

docker 連線宿主Mysql

今天公司專案要配置docker,順利在windows上裝完了之後,發現連線不上本地的mysql,一直報許可權問題或者位址錯誤的問題 最後發現 1 位址按照下面這個ipv4來 2 要在宿主mysql將localhost許可權開啟,命令如下 mysql u root pvmwaremysql use m...

docker宿主機訪問docker容器服務失敗

原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...

docker 連線宿主Mysql操作

今天公司專案要配置docker,順利在windows上裝完了之後,發現連線不上本地的mysql,一直報許可權問題或者位址錯誤的問題 最後發現 1 位址按照下面這個ipv4來 2 要程式設計客棧在宿主mysql將localhost許可權開啟,命令如下 mysql u root pvmwaremysql...