解決Docker容器內訪問宿主機MySQL數據庫服務器的問題

懶得描述太多,總歸是解決了問題,方法簡要記錄如下,雖然簡要,但是完整,一來紀念處理該問題耗費的大半天時間,二來本著共享精神幫助其他遇到該問題的哥們兒,當然這個方法并不一定能解決你們的問題,但是多少能提供些解決思路.

第一,先檢查防火墻,通常應該沒什么問題

(問題解決之后我把這塊規則去掉了,發現沒什么影響,所以容器的話,可能docker已經解決了防火墻的問題,但是不排除其他人會有這個問題.)
添加規則

針對特定地址開放3306端口,一定程度上保證數據庫的安全
iptables -I INPUT -s 172.17.0.2 -p tcp --dport 3306 -j ACCEPT
展示當前規則
iptables-save
將規則輸出至文件
iptables-save > iptables.rules.backup 
將文件內規則導出至當前防火墻,規則生效
iptables-restore < iptables.rules.backup

?

第二,修改MySQL配置文件,將綁定的配置注釋掉,然后添加數據庫user表中root用戶Host記錄,使該用戶可以在該IP地址遠程連接數據庫
引起的問題:
Can’t connect to MySQL server on (111 “Connection refused”)
解決:

找到自己MySQL數據庫配置文件的位置,編輯
/etc/mysql/mysql.conf.d# vi mysqld.cnf
將 bind 127.0.0.1 注釋掉

開放遠程連接后,會出現第二個問題:
"Host '172.17.0.2' is not allowed to connect to this MySQL server"

解決辦法:
root 進入數據庫,執行下方兩行命令:
grant all privileges on *.* to 'root'@'172.17.0.2' identified by 'pswd' with grant option;
開放所有權限給root,當root以pswd(不一定是root登錄密碼,僅作為情景下登錄的密碼)密碼從 172.17.0.2 登入的時候,允許其操作所有數據庫下的所有表(也可以將 *.* 改成特定數據庫下的特定表,這個隨意).

flush privileges;
刷新

重啟數據庫
/etc/init.d/mysql stop
/etc/init.d/mysql start


再從docker訪問數據庫的時候就可以了
root@2395caf9da2b:~/backends# telnet 172.17.0.1 3306
Trying 172.17.0.1...
Connected to 172.17.0.1.
Escape character is '^]'.


這樣的結果就是,僅開放一個IP地址的權限

注意,網上有許多好心的哥們兒也提供了修改的命令,grant all privileges on *.* to 'root'@'%' identified by 'pswd' with grant option;

就是把IP地址改成了%,這樣的結果就是當root從任意機器遠程連接的時候只要密碼正確,都會接受,一勞永逸,不過這樣多少優點安全隱患,自己把握吧.

轉載于:https://www.cnblogs.com/haiton/p/11064727.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386592.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里P7親自教你!我的頭條面試經歷分享,完整PDF

前言 轉眼間&#xff0c;2020 年已過去一大半了&#xff0c;2020 年很難&#xff0c;各企業裁員的消息蠻多的&#xff0c;降職&#xff0c;不發年終獎等等。2020 年確實是艱難的一年。然而生活總是要繼續&#xff0c;時間不給你喪的機會&#xff01;如果我們能堅持下來&#x…

Java多線程 ——線程基礎和鎖鎖鎖

Java多線程(一) 一、線程的定義二、Synchronize線程同步三、偏向鎖、自旋鎖、重量級鎖四、volatile關鍵字 4.1.普通變量運算的物理意義4.2.有無解決的方案4.3.volatile的幾個特性&#xff08;參考https://www.cnblogs.com/kubidemanong/p/9505944.html&#xff09;五、Compare …

阿里P7級別面試經驗總結,進階學習資料!

一、前言 本人面試已經很久之前了&#xff0c;分享一下我做美團面試官的經歷吧。 美團上海面試&#xff0c;2-1及以下美團是不社招的&#xff0c;校招和2-2~2-3社招一般是三面&#xff0c;格外優秀3-1及以上會加簽面試。初面技術基礎&#xff0c;二面業務感知和技術項目&#…

C 預處理指令

0. Overview C的預處理指令格式為#name&#xff0c;均以#開頭&#xff0c;#和指令名之間不可有空白字符&#xff0c;#前可以有空字符&#xff0c;但為增強可讀性&#xff0c;一般應從第一列開始 #name不能由宏展開得來&#xff0c;name也不能由宏展開得來&#xff0c;如 // Wro…

Windows NAT端口映射

Windows本身命令行支持配置端口映射&#xff0c;條件是已經安裝了IPV6&#xff0c;啟不啟用都無所謂&#xff0c;我在win7和server2008上是可以的。xp&#xff0c;2003裝了ipv6協議也是可以的。 CMD下操作 增加端口映射&#xff0c;將10.10.10.10的8080映射到10.10.10.11的80…

阿里P8大牛親自教你!史上最全的Android面試題集錦,這原因我服了

一、架構師專題 想要掌握復雜的技術&#xff0c;必須要理解其原理和架構。本模塊結合實際一線互聯網大型項目理解架構思維&#xff0c;抽絲剝繭&#xff0c;層層深入&#xff0c;幫助大家成為Android架構師&#xff0c;在思想上對架構認識有一次升華&#xff0c;并知其所以然&a…

面向對象程序設計——UML分析和本學期總結

? 隨著第四單元UML第二次作業的結束&#xff0c;本學期的OO學習也宣告結束了&#xff08;但還得寫博客&#xff09;&#xff0c;下面就對本單元和本次作業做一個總結。 第四單元兩次作業的架構設計 ? 本單元是對UML的結構進行解析&#xff0c;第一次作業是對UML類圖的解析&am…

docker linux k8s kubeadm

一. 安裝docker 1.添加yum國內依賴 yum -y install yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2.安裝docker yum -y install docker-ce docker-ce-cli containerd.io3.啟動docker systemctl start docker4…

小程序FMP優化實錄,大廠面試題匯總

前言 金九銀十面試季&#xff0c;相信大家肯定急需一套Android面試寶典&#xff0c;今天小編就給大家準備了我珍藏已久的Android高階面試寶典&#xff0c;一份超級詳細的Android面試必備知識點&#xff0c;供大家學習 &#xff01; 想必每一個安卓程序員都有追求大廠的決心&a…

文件CRC和MD5校驗

文件CRC和MD5校驗 CRC和MD5用于文件和數據的傳輸校驗&#xff0c;以確認是否接收成功。 unit CRCMD5;interface { 獲取文件CRC校驗碼 } function GetFileCRC(const iFileName: string): String; { 獲取字符串CRC校驗碼 } function GetStringCRC(const Str: string): Cardinal; …

Oracle字符分隔函數(split)

為了讓 PL/SQL 函數返回數據的多個行&#xff0c;必須通過返回一個 REF CURSOR 或一個數據集合來完成。REF CURSOR 的這種情況局限于可以從查詢中選擇的數據&#xff0c;而整個集合在可以返回前&#xff0c;必須進行具體化。Oracle 9i 通過引入的管道化表函數糾正了后一種情況。…

已成功拿下字節、騰訊、脈脈offer,吐血整理

為什么想跳槽&#xff1f; 簡單說一下當時的狀況&#xff0c;我在這家公司做了兩年多&#xff0c;這兩年多完成了一個大項目&#xff0c;作為開發的核心主力&#xff0c;開發壓力很大&#xff0c;特別是項目上線前的幾個月是非常辛苦&#xff0c;幾乎每晚都要加班到12點以后&a…

復雜HTML解析

#再端一碗BeautifulSoup #獲取《戰爭與和平》中的人物名字from urllib.request import urlopen from bs4 import BeautifulSouphtml urlopen("http://www.pythonscraping.com/pages/warandpeace.html") bsObj BeautifulSoup(html,html.parser)#namelist bsObj.fin…

java main方法里調用mapper

在main方法中調用mybatis的mapper&#xff0c;一次性執行導入數據功能package com.runxsoft.test;import com.runxsoft.iutils.common.utils.UserUtils; import com.runxsoft.superwe.base.SqlVo; import com.runxsoft.superwe.base.mapper.ProtogenesisMapper; import com.run…

已成功拿下字節、騰訊、脈脈offer,滿滿干貨指導

開頭 籠統來說&#xff0c;中年程序員容易被淘汰的原因其實不外乎三點。 1、輸出能力已到頂點。這個人奮斗十來年了&#xff0c;依舊碌碌無為&#xff0c;很明顯這人的天花板就這樣了&#xff0c;說白了&#xff0c;天賦就這樣。 2、適應能力越來越差。年紀大&#xff0c;有家…

ServletRequest HttpServletRequest 請求方法 獲取請求參數 請求轉發 請求包含 請求轉發與重定向區別 獲取請求頭字段...

原文地址:ServletRequest HttpServletRequest 請求方法 獲取請求參數 請求轉發 請求包含 請求轉發與重定向區別 獲取請求頭字段ServletRequest 基本概念 JavaWeb中的 "Request"對象 實際為 HttpServletRequest 或者 ServletRequest, 兩者都為接口服務器接收請求…

c#掃描圖片去黑邊(掃描儀去黑邊)

/// <summary> /// 自動去除圖像掃描黑邊 /// </summary> /// <param name"fileName"></param> public static void AutoCutBlackEdge(string fileName) { //打開圖像 Bit…

已成功拿下字節、騰訊、脈脈offer,算法太TM重要了

一、背景介紹 從實用角度梳理一篇能夠幫大家快速掃盲的CMake基礎教程&#xff0c;也是對我目前負責項目的一次學習總結。既然選擇從項目實用性考慮&#xff0c;下面的講解內容可能并不一定完整&#xff0c;更多的是符合項目目前使用到的一些特性。 接下來正面回答這個問題&am…

SpringBoot2.0 Actuator 監控參數說明

主要內容更 監控參數說明 Maven坐標 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>io.micrometer</groupId>&…

帶你一步一步深入Handler源碼,醍醐灌頂!

開頭 最近有粉絲反應&#xff0c;不想做安卓了&#xff0c;有朋友轉到前端了&#xff0c;安卓不行了&#xff0c;問我怎么辦&#xff1f; 自從RN&#xff0c;Weex這種跨平臺編程語言出來以后&#xff0c;安卓將死的言論總是不絕于耳。隨著頗有摧枯拉朽之勢Flutter的出現&…