问下如何用navicate连接远程服务器里面的docker容器里面的mysql

情况是这样的。
我有台服务器是linux,如ip地址是153.153.120.24
然后我在这个linux服务器里面安装了一天docker容器,容器是一个centos系统,我在这个docker容器里面再安装了一个mysql。
现在情况是如何能用我电脑连接容器里面的mysql。
那个linux服务器我用ssh root@153.153.120.24 是能连上的。
然后我在远程服务器上,
用mysql -uroot -p -h172.18.0.3 是能连上那个docker里面的mysql。那个容器地址是172.18.0.3
问下如何用我本地的navicate连接远程服务器上的容器里面的mysql?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

为啥要连容器ip,不应该连服务器ip吗

3个月前 评论
donggan (楼主) 3个月前
lijizheng (作者) 3个月前
讨论数量: 7

为啥要连容器ip,不应该连服务器ip吗

3个月前 评论
donggan (楼主) 3个月前
lijizheng (作者) 3个月前

把容器的mysql端口映射到宿主机,然后连宿主机的ip+映射的端口

3个月前 评论

你提到的 MySQL 客户端没有通过 SSH 登录的功能吗?我使用 TablePlus,他是支持 Over SSH 连接服务器中的 MySQL 的,如下图:

file

3个月前 评论

你没有把端口映射出来吗?

docker run -itd --name mysql5.6 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

3个月前 评论

看样子你应该把端口映射到宿主机了, 那么远端访问,最好通过隧道。 最简单的方法就是, 在navicat 里右键新建【编辑】连接 常规:按照你在服务器的连接配置去填即可,比如主机 localhost之类的 SSH:

  • 选择使用隧道
  • 主机:就是你远程的主机公网IP
  • 端口:SSH的端口,默认是22
  • 用户名:就是登录服务器的用户名
  • 密码:你的密码

配置图

常规配置图

file

SSH配置图

file

高级配置图

此外防止断线快,最好设置心跳短一点

file

3个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!