远程连接mysql,特别慢,有时连不上

远程连接mysql,特别慢,有时连不上

  • 现象
  • 参考
  • 原因
  • 三种解决方法

现象

  1. 从client连mysql服务器,连不上,连接超时
  2. 从服务器上看mysql日志信息:
    [Warning] IP address ‘172.16.3.12’ could not be resolved: Temporary failure in name resolution
    其中的IP是客户端IP

参考

[1] https://serverfault.com/questions/341290/mysql-warning-ip-address-could-not-be-resolved
[2] https://blog.csdn.net/yabingshi_tech/article/details/51956554

原因

mysqld对IP进行反向域名解析,不能解析导致的错误

三种解决方法

  1. 把DNS去掉:注释掉/etc/resolv.conf的内容. 没有设置DNS服务器,mysqld就不去远程做DNS解析了

方法1的局限:需要DNS解析的其他应用没法工作了

  1. 把client的ip和主机名写在mysql服务器的/etc/hosts文件里,mysqld可以很快解析到主机名。
    如:
    172.16.3.12 xxx.com

方法2的局限:不适于客户端多或IP经常变化时

  1. 通过mysqld的配置文件,禁止mysqd进行域名解析:
    下列内容写在 /etc/my.conf.d/server.cnf 中 (CentOS)
[mysqld]
skip-host-cache
skip-name-resolve

方法3的局限:不能在mysql授权时中指定主机名了,只能指定IP

你可能感兴趣的:(数据库)