记一次数据库链接失败问题,最后定位是 iptables 防火墙拦截了

先查看阿里云开放

阿里云后台,查看服务器入口白名单,3306(这个正常都开启的)

查看远程连接用户权限

mysql -h 121.40.234.122 -u root -p
##登录上去
##查询
use mysql;
select host, user from user;
#显示:
mysql> select host, user from user;
+-----------+----------+
| host      | user     |
+-----------+----------+
| %         | hzbctest |
| %         | jira     |
| %         | root     |
| 127.0.0.1 | root     |
| ::1       | root     |
+-----------+----------+
5 rows in set (0.00 sec)
#%表示允许所有ip

配置文件限制绑定IP

#修改配置文件,
vi /etc/my.cnf
#在 [mysqld] 添加下面代码,:wq 保存
bind-address = 0.0.0.0
#登录 MySQL 后执行:
mysql -h 121.40.234.122 -u root -p

show variables like 'bind_address';

#显示
+---------------+-----------+
| Variable_name | Value     |
+---------------+-----------+
| bind_address  | 0.0.0.0   |
+---------------+-----------+

检查防火墙发现问题

iptables -L INPUT -n | grep 3306

#显示:
Chain INPUT (policy ACCEPT 1976M packets, 1382G bytes)
 pkts bytes target     prot opt in     out     source               destination
  16M 1850M ACCEPT     tcp  --  *      *       121.40.234.122       0.0.0.0/0            tcp dpt:3306
68176 7141K ACCEPT     tcp  --  *      *       47.98.33.47          0.0.0.0/0            tcp dpt:3306
35505   16M ACCEPT     tcp  --  *      *       122.224.231.10       0.0.0.0/0            tcp dpt:3306
 110K 6493K DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3306


 #122.224.231.10 老公司 ip没更新,查询
iptables -L INPUT --line-numbers | grep '122.224.231.10'
#结果:
3    ACCEPT     tcp  --  122.224.231.10       anywhere             tcp dpt:mysql
#删除 3
iptables -D INPUT 3  # 替换 3 为实际编号
# 插入新 IP 访问 3306 端口,插入到所有 DROP 规则之前
iptables -I INPUT -p tcp --dport 3306 -s 218.75.44.198 -j ACCEPT

#检查一下
iptables -L INPUT -n | grep 3306

ACCEPT     tcp  --  218.75.44.198        0.0.0.0/0            tcp dpt:3306
ACCEPT     tcp  --  121.40.234.122       0.0.0.0/0            tcp dpt:3306
ACCEPT     tcp  --  47.98.33.47          0.0.0.0/0            tcp dpt:3306
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
 

代码世界的构建师,现实生活的悠游者。