Navicat連接遠程服務(wù)器里docker中mysql的方法(已解決)
1. 開啟端口映射
在docker
中,我們需要將允許外界訪問的端口通過配置文件映射出來,本文不需要將3306
端口映射,但是該部分還是有實際用途的,因此在此記錄。著急可以跳過第一部分。在創(chuàng)建并運行鏡像的時候,我們會初始化參數(shù),例如:
docker run -p 20000:22 -p 3000:3000 --name my_docker_sercer -itd docker_image:1.0 # 創(chuàng)建并運行docker_image:1.0鏡像
但是,我們有時候會在創(chuàng)建后增加映射端口,此時,我們可以通過修改配置文件的方式處理。
- 在容器外,使用
root
用戶登錄
docker ps -a # 查看所有容器信息 docker inspect xxx |grep Id # 查看需要添加端口映射的容器的id(xxx是需要添加端口映射的容器的名稱)
- 進入目錄
/var/lib/docker/containers
如果容器還在運行,需要先停止docker
服務(wù):systemctl stop docker
查看該目錄下的所有容器,進入需要增加端口號的容器。
編輯hostconfig.json
添加端口映射(參考其他端口格式):
編輯config.v2.json
公開添加的端口(參考其他端口格式):
- 重啟容器:
systemctl start docker # 啟動docker服務(wù) docker start kob_server # 后面為自己的容器名稱 # 啟動容器后記得重啟自己的服務(wù)(mysql, java, nginx等)
- 到服務(wù)器中添加安全組(
ip
可以根據(jù)實際需求只放行本地ip
):
2. 修改mysql配置
正文開始。
- 修改mysql中的
root
用戶訪問權(quán)限
將mysql中的user
表的root
用戶的host
字段修改為%
:
show databases; use mysql; SELECT user, host FROM user; UPDATE user SET host = '%' WHERE user = 'root'; # 最后記得刷新一下 FLUSH PRIVILEGES;
- 修改配置文件
其實如果我們后面使用ssh
連接容器,這一步修改沒有必要,因為我們連接容器后就能夠通過127.0.0.1
訪問數(shù)據(jù)庫,但是可能有的同學想通過其他當時連接,這里將方法說明。著急的直接進入下一節(jié)。
這里有個坑,很多教程修改的是
my.conf
文件,但是mysql8
以后就不在該文件中了,而是在mysqld.cnf
中。
cd /etc/mysql/mysql.conf.d/ sudo vim mysqld.cnf
進入文件之后查找到bind-address
,將這一行注釋掉(需要一點點vim
知識)
- 最后重啟
mysql
服務(wù)
service mysql restart
3. 在navicat中連接mysql
- 在navicat中連接mysql數(shù)據(jù)庫,選擇
ssh
:
需要注意的是,端口應(yīng)選擇容器的運行端口,密碼是用戶登錄密碼,不是mysql
的密碼。
- 然后選擇常規(guī):
注意這里的主機是服務(wù)器容器中的本地ip
,因為我們是通過ssh
連接到容器了。
- 最后點擊測試連接并確定
總結(jié)
到此這篇關(guān)于Navicat連接遠程服務(wù)器里docker中mysql的文章就介紹到這了,更多相關(guān)Navicat連接遠程docker中mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql limit 優(yōu)化,百萬至千萬級快速分頁 復(fù)合索引的引用并應(yīng)用于輕量級框架
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個問題還是從前天開始。有過痛苦有過絕望,到現(xiàn)在充滿信心!2011-05-05解決hibernate+mysql寫入數(shù)據(jù)庫亂碼
初次沒習hibernate,其中遇到問題在網(wǎng)上找的答案與大家共同分享!2009-07-07