本地navicat如何连接centos虚拟机下docker内mysql容器
N 人看过
字数:398字 | 预计阅读时长:1分钟
- 首先确保宿主机能够 ping 同 centos 虚拟机
- centos 虚拟机需要开放 mysql 容器创建时指定的 centos 映射端口 3306,类似腾讯云中的安全组来开放
查看 centos 中是否安装 iptables 防火墙,如果没有进行安装
/etc/sysconfig/iptables不存在,就是没有安装iptables防火墙
可以通过以下命令安装iptables防火墙
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
service iptables status
//设置开机启动
systemctl enable iptables
之后你就能找到/etc/sysconfig/iptables文件
- 编辑 iptables 文件
文件内容长这样
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在开放的 22 端口下面添加上这一行,来开放 3306 端口
注意这里自己编写容易出错,这里直接复制 22 端口那一行,然后修改 22 为 3306 即可,否则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
# 重启防火墙
service iptables restart
- 这时候 navicat 还是不能访问,因为我们创建的 root 用户访问只能 locahost
# 进入mysql容器
docker exec -it mysql /bin/bash
mydql -uroot -pmake1234
update user set host = '%' where user = 'root'; # 修改为任何主机都可以root远程连接
flush privileges;
参考:https://blog.csdn.net/szu_Vegetable_Bird/article/details/80216201
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。