今天收到报警,有一台服务器权限错误,排查得知,服务器ping不通数据库了,两者连接不上了
[root@test002 ~]# ping rm-XXXXXXXXXXXX.mysql.rds.aliyuncs.com
PING rm-XXXXXXXXXXXX.mysql.rds.aliyuncs.com (172.17.0.232) 56(84) bytes of data.
From test002 (172.17.0.1) icmp_seq=1 Destination Host Unreachable
From test002 (172.17.0.1) icmp_seq=2 Destination Host Unreachable
From test002 (172.17.0.1) icmp_seq=3 Destination Host Unreachable
Destination Host Unreachable 目标主机不能到达
不过看这个ip有点奇怪,服务器通用是16网段,怎么ip变成17了
查看ip
[root@test002 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:33:3e:aa:d5:35 brd ff:ff:ff:ff:ff:ff
inet 172.16.128.2/24 brd 172.16.128.255 scope global eth0
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:95:2e:15:8b brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
docker网桥的ip段把本机ip段覆盖了,而docker的默认网段172.17网段和数据库网段冲突了
把docker的ip段关闭就好了
ip link set dev docker0 down
重新查看ip
[root@test002 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:33:3e:aa:d5:35 brd ff:ff:ff:ff:ff:ff
inet 172.16.128.2/24 brd 172.16.128.255 scope global eth0
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN
link/ether 02:42:95:2e:15:8b brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
可以看到docker那显示 state DOWN
重新ping数据库
[root@test002 ~]# ping rm-XXXXXXXXXXXX.mysql.rds.aliyuncs.com
PING rm-XXXXXXXXXXXX.mysql.rds.aliyuncs.com (172.17.0.232) 56(84) bytes of data.
64 bytes from 172.17.0.232 (172.17.0.232): icmp_seq=1 ttl=102 time=0.686 ms
服务正常了
最好更换一下docker网段
替换后,重新ping数据库也是正常的,docker也能正常使用了