首页 新闻 会员 周边 捐助

navicat无法访问docker mysql

-1
[已解决问题] 解决于 2020-05-06 22:18
  1. 虚拟机中安装centos8,之后,又装了docker,在docker内装了mysql8;
  2. docker内启动,并登录mysql,没有问题;
  3. 修改了mysql user表的host和plugin,设置了任意IP访问;
  4. 用navicat无法连接,查看docker IP(172.17.0.1), 查看虚拟机IP(192.168.1.108),分别用这两个IP+端口,navicat始终不能连接mysql。

在网上查过无解,请教大神帮忙解答,感谢!

千里码万里行的主页 千里码万里行 | 菜鸟二级 | 园豆:206
提问于:2019-12-31 01:40

前提:关掉防火墙或防火墙配置IP端口

  1. 启动mysql
    docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
    -d 守护模式,后台运行
    -p 端口映射
    --name 修改容器名字
    按如上操作,已可以正常访问mysql database
千里码万里行 4年前
< >
分享
最佳答案
0

前提:关掉防火墙或防火墙配置IP端口

  1. 启动mysql docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
    -d 守护模式,后台运行
    -p 端口映射
    --name 修改容器名字 按如上操作,已可以正常访问mysql database
千里码万里行 | 菜鸟二级 |园豆:206 | 2020-05-04 13:53
其他回答(2)
0

可以按照如下步骤检查
1 docker 内mysql本身是否可以登录了 mysql -h 172.17.0.?
2 mysql是否和主机暴露了端口,docker ps -a可以查看端口情况 mysql命令行192.168.1.108 -P port是否通
3 mysql没和主机暴露端口
MySQL命令行直接连mysql -h 172.17.0.?
此时看mysql的主机的防火墙之类的是否开了

一般这几个步骤基本能定位到问题

2012 | 园豆:21445 (高人七级) | 2019-12-31 08:18
  1. 可以登陆
  2. docker ps -a如下:
  3. 防火墙及端口如下:
  4. 在docker内的mysql执行192.168.1.104 -P 3306(33060),是这样执行吗?但是不通呢
  5. docker下mysql状态及端口如下:
支持(0) 反对(0) 千里码万里行 | 园豆:206 (菜鸟二级) | 2020-01-02 01:05

@千里码万里行: 第一个图说明mysql已经正常了
172.17.0.1是你物理机docker网桥的ip
你的docker mysql的容器IP估计是172.17.0.2之类的
navicat无法连接,mysql版本是8的,这个工具是否不兼容

支持(0) 反对(0) 2012 | 园豆:21445 (高人七级) | 2020-01-02 08:26
0
ycyzharry | 园豆:25683 (高人七级) | 2019-12-31 22:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册