Linux系统连接RDS MySQL实例提示“Unknown MySQL server host”错误

更新时间:
复制为 MD 格式

问题描述

使用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。

  1. 登录ECS实例,执行如下命令,编辑sysctl.conf文件。

    vim /etc/sysctl.conf

  2. 根据实际内存情况调整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
  3. 执行如下命令,使配置生效。

    sysctl -p
    说明

    更新内核参数如果提示error: "nf_conntrack_max" is an unknown key报错,需加载ip_conntrack模块,建议加入到 /etc/rc.local启动项中。

适用于

  • 云数据库RDS MySQL