關(guān)于navicat無(wú)法連接至Linux-docker上的MySQL探究過(guò)程

navicat docker MySQL Linux

問(wèn)題提出


我在上課時(shí)老師提出了使用navicat操作MySQL,由于我的MySQL是在Windows環(huán)境下的一臺(tái)Linux虛擬機(jī)的docker上(Linux的版本是Ubuntu 18.04.1),而navicat在主機(jī)上,所以我嘗試在Windows上對(duì)MySQL進(jìn)行連接但是在連接過(guò)程中出現(xiàn)了一些問(wèn)題.


因?yàn)槭墙佑|Linux,docker,mysql沒(méi)有多長(zhǎng)時(shí)間,所以有些內(nèi)容可能缺乏專業(yè)性.
當(dāng)然markdown也是接觸沒(méi)多久所以排版上也存在一些問(wèn)題.


嘗試一(失敗)


以下是我的操作:

1.在terminal進(jìn)入MySQL

docker satrt fyhz
docker exec -it fyhz bash
mysql -uroot -p

2.配置Mysql

select host,user from user;
grant all privileges on *.* to 'root'@'%'

使root用戶在任何地方都有權(quán)限訪問(wèn)到數(shù)據(jù)庫(kù)

flush privileges;

刷新權(quán)限

3.查看fyhz容器的IP

docker inspect fyhz | grep IP

得到

"LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "IPAMConfig": null, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0,

得到IP地址后去navicat嘗試連接

錯(cuò)誤:

2003 - Can't connect to MySQL server on 'IP'(10061 "Unknown error")

隨后我懷疑是IP地址的問(wèn)題就去查看了虛擬機(jī)的IP

hostname -I

得到10.0.2.15 172.17.0.1兩個(gè)結(jié)果然后我嘗試了以下10.0.2.15

發(fā)現(xiàn)結(jié)果相同

由于我對(duì)IP了解的不多,所以在這里遇到了難題,我所知道的也只是上面的兩個(gè)地址均為虛擬機(jī)的默認(rèn)IP地址


隨后我又做了一下嘗試性操作

1.允許外部訪問(wèn)3306端口

sudo ufw allow 3306

反饋:Rule added

Rule added (v6)

嘗試連接還是連接失敗 ,錯(cuò)誤相同

2.關(guān)閉Linux的防火墻

sudo ufw disabled

反饋:Firewall stopped and disabled on system startup

嘗試連接還是連接失敗,錯(cuò)誤相同

兩天后又有新思路

嘗試二(失敿柙蕖)

1.確認(rèn)Windows與虛擬機(jī)上的Ubuntu可以相互連接

打開(kāi)cmd輸入ipconfig

得到虛擬機(jī)ip與本機(jī)ip

(在這之前作者已經(jīng)將virtualbox中的ip設(shè)為自動(dòng)獲取,以保證Linux和Windows在同一個(gè)網(wǎng)段)

在cmd下輸入ping 169.254.32.14

得到

正在 Ping 169.254.32.14 具有 32 字節(jié)的數(shù)據(jù):
來(lái)自 169.254.32.14 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=128
來(lái)自 169.254.32.14 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=128
來(lái)自 169.254.32.14 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=128
來(lái)自 169.254.32.14 的回復(fù): 字節(jié)=32 時(shí)間<1ms TTL=128

169.254.32.14 的 Ping 統(tǒng)計(jì)信息:
數(shù)據(jù)包: 已發(fā)送 = 4穆桂,已接收 = 4,丟失 = 0 (0% 丟失)境氢,
往返行程的估計(jì)時(shí)間(以毫秒為單位):
最短 = 0ms末誓,最長(zhǎng) = 0ms丸逸,平均 = 0ms

在bash中輸入ping 192.168.134.241

得到

PING 192.168.134.241 (192.168.134.241) 56(84) bytes of data.
64 bytes from 192.168.134.241: icmp_seq=1 ttl=127 time=0.906 ms
64 bytes from 192.168.134.241: icmp_seq=2 ttl=127 time=0.994 ms
64 bytes from 192.168.134.241: icmp_seq=3 ttl=127 time=0.985 ms
^C
--- 192.168.134.241 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 0.906/0.961/0.994/0.053 ms

ok現(xiàn)在Windows與Linux之間已經(jīng)可以相互連接


2.再次嘗試連接

輸入Linux IP或者docker內(nèi)容器IP仍然無(wú)法連接,錯(cuò)誤相同

嘗試三(失斀踉)

1.設(shè)置Linux主機(jī)ip為192.168.6.99

sudo ifconfig enp0s3 192.168.6.99 netmask 255.255.255.0 up

2.創(chuàng)建新容器

docker run -itd --name fyhz -p 192.168.6.99 :7777:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

將容器的3306端口映射到ip:192.168.6.99的7777端口

3.配置Mysql

select host,user from user;
grant all privileges on *.* to 'root'@'%';

使root用戶在任何地方都有權(quán)限訪問(wèn)到數(shù)據(jù)庫(kù)

flush privileges;

刷新權(quán)限

4.嘗試連接

連接失敗,反饋Network error:Connection refused

隨即關(guān)閉防火墻再次嘗試連接,錯(cuò)誤反饋相同.


嘗試四(成功)

繼嘗試三中的問(wèn)題進(jìn)行解決式,發(fā)現(xiàn)了新方法:雙網(wǎng)卡.
這就涉及到虛擬機(jī)各種網(wǎng)絡(luò)連接方式的特性了
僅主機(jī)(Host-Only)網(wǎng)絡(luò)與網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
前者簡(jiǎn)單的理解為僅用于虛擬機(jī)與宿主機(jī)之間的數(shù)據(jù)連接與傳輸
而后者我的理解是虛擬機(jī)自己虛擬出了一個(gè)宿主機(jī)網(wǎng)絡(luò)下的IP來(lái)進(jìn)行網(wǎng)絡(luò)連接

此時(shí)網(wǎng)絡(luò)部署已經(jīng)完成,然后就是對(duì)docker的部署
因?yàn)楸救薲ocker中的mysql創(chuàng)建時(shí),沒(méi)有映射端口至Linux系統(tǒng)上,導(dǎo)致無(wú)法連接(這可能也是前幾次嘗試中失敗的原因之一)
隨后我再次進(jìn)入docker重新創(chuàng)建了一個(gè)容器將容器的3306端口映射到了linux的7777端口上

sudo docker run --name=mysql -it -p 7777:3306 -e MYSQL_ROOT_PASSWORD=emc123123 -d mysql

端口可以設(shè)為任意沒(méi)有被占用的端口
隨后進(jìn)入mysql

select host,user from user;
grant all privileges on *.* to 'root'@'%';

使root用戶在任何地方都有權(quán)限訪問(wèn)到數(shù)據(jù)庫(kù)

flush privileges;

刷新權(quán)限
隨后在命令行中輸入ifconfig查看enp0s3的ip地址(我的是enp0s3,主要就是要找到虛擬機(jī)設(shè)置的主機(jī)模式ip)
隨后去navicat中輸入ip地址進(jìn)行連接,設(shè)置端口為7777,輸入密碼
成功!
這樣我就可以正常的上課學(xué)習(xí)啦!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市湖笨,隨后出現(xiàn)的幾起案子旗扑,更是在濱河造成了極大的恐慌,老刑警劉巖慈省,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臀防,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡边败,警方通過(guò)查閱死者的電腦和手機(jī)袱衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)笑窜,“玉大人致燥,你說(shuō)我怎么就攤上這事∨沤兀” “怎么了嫌蚤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)断傲。 經(jīng)常有香客問(wèn)我脱吱,道長(zhǎng),這世上最難降的妖魔是什么艳悔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任急凰,我火速辦了婚禮,結(jié)果婚禮上猜年,老公的妹妹穿的比我還像新娘抡锈。我一直安慰自己,他們只是感情好乔外,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布床三。 她就那樣靜靜地躺著,像睡著了一般杨幼。 火紅的嫁衣襯著肌膚如雪撇簿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天差购,我揣著相機(jī)與錄音四瘫,去河邊找鬼。 笑死欲逃,一個(gè)胖子當(dāng)著我的面吹牛找蜜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稳析,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼洗做,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弓叛!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起诚纸,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤撰筷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后畦徘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體毕籽,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肥败。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖膏执,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仅孩,我是刑警寧澤菜职,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站肉微,受9級(jí)特大地震影響匾鸥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碉纳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一勿负、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劳曹,春花似錦奴愉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蜕劝,卻和暖如春檀头,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岖沛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工暑始, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婴削。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓廊镜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親馆蠕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子期升,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355