问题描述
使用Linux系统的ECS实例连接RDS MySQL实例时提示如下错误。
Unknown MySQL server host
问题原因
由于开启iptables导致域名解析的数据包被丢弃,查看系统日志提示如下报错。
[root@xxx ~]# tail -f /var/log/messages |grep conntrack
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
May 11 18:29:59 xxx kernel: nf_conntrack: table full, dropping packet.
解决方案
以下操作基于CentOS 6.5的系统,其他低版本的参数为net.ipv4.ip_conntrack_max。
-
登录ECS实例,执行如下命令,编辑sysctl.conf文件。
vim /etc/sysctl.conf -
根据实际内存情况调整
net.nf_conntrack_max的参数,保存并退出。net.nf_conntrack_max = 6550400系统显示类似如下。
net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 10240 net.ipv4.tcp_max_tw_buckets = 20000 fs.file-max=65535 net.nf_conntrack_max = 6558400 -
执行如下命令,使配置生效。
sysctl -p说明更新内核参数如果提示
error: "nf_conntrack_max" is an unknown key报错,需加载ip_conntrack模块,建议加入到/etc/rc.local启动项中。
适用于
-
云数据库RDS MySQL版
该文章对您有帮助吗?