簡體   English   中英

無法使用127.0.0.1連接mysql服務器docker容器,但可以使用IP?

[英]Can't use 127.0.0.1 to connect mysql server docker container, but can use IP?

在我的個人PC中,有一個與端口3306綁定的docker mysql容器。它運行良好。 我可以通過另一台PC在此容器中連接mysql服務器。

sh$ mysql -hxxx.xxx.xxx.110 -uroot -p

在主機PC中,我可以通過以下方式連接容器:

sh$ mysql -hxxx.xxx.xxx.110 -uroot -p

但是,當我嘗試將容器連接到127.0.0.1時,它失敗了:

sh$ mysql -uroot -p

已知:

  1. 在容器中,我可以通過以下方式連接mysql服務器:

      sh$ mysql -uroot -p 
  2. 密碼沒有問題

  3. 同時,我可以將主機上的127.0.0.1:6376連接到redis容器。

我只是在推測,但是Docker容器可能具有自己的[偽]網絡接口。 但是您正在嘗試通過主機的環回接口進行連接。 那是兩個獨立的網絡。

請記住,127.0.0.1不僅是一個特殊的IP —它是由單獨的網絡接口分配的IP。

您可以將Docker配置為共享主機的網絡堆棧。 也許那是最好的。

請嘗試按照以下步驟操作:1.使用ip登錄mysql並使用“從mysql.user中選擇主機,用戶,密碼;” 檢查命令結果中是否存在127.0.0.1; 在此處輸入圖片說明

2.如果沒有,請執行Grant命令並確保127.0.0.1擁有特權,然后再次登錄托盤。

grant all on *.* to root@'127.0.0.1' identified by 'root';
flush privileges;

您將要檢查my.cnfbind-address配置:

# 
# File: my.cnf
#
[mysqld]
bind-address            = 192.168.1.100

在良好實踐中,根據您的用例,此值應為127.0.0.1

暫無
暫無

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

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