domain-name-system – 与MySQL服务器的远程连接需要很长时间

我在我的 Linux笔记本上运行了一个 MySQL 5.0.75服务器,我想从本地网络中的另一台机器连接到该服务器.

此连接需要5-6秒:

MysqL -h 172.22.65.101 -u myuser -p123

ping MysqL主机:

PING 172.22.65.101 (172.22.65.101) 56(84) bytes of data.
64 bytes from 172.22.65.101: icmp_seq=1 ttl=64 time=0.799 ms
64 bytes from 172.22.65.101: icmp_seq=2 ttl=64 time=0.000 ms
64 bytes from 172.22.65.101: icmp_seq=3 ttl=64 time=6.43 ms
64 bytes from 172.22.65.101: icmp_seq=4 ttl=64 time=0.000 ms
64 bytes from 172.22.65.101: icmp_seq=5 ttl=64 time=3.81 ms
64 bytes from 172.22.65.101: icmp_seq=6 ttl=64 time=0.706 ms
^C
--- 172.22.65.101 ping statistics ---
6 packets transmitted,6 received,0% packet loss,time 5027ms
rtt min/avg/max/mdev = 0.000/1.959/6.437/2.383 ms

有任何想法吗?当我用SHOW PROCESSLIST监视连接时;在MysqL主机上,我可以看到命令是“connect”,用户是“未经身份验证的用户”.这将持续到建立连接. (然后用户显示为“myuser”,命令为“sleep”)

我是开发人员,需要您就如何找到瓶颈提出建议!

我在主机上的my.cnf:

[client]
port = 3306
socket = /var/run/MysqLd/MysqLd.sock

[MysqLd_safe]
socket = /var/run/MysqLd/MysqLd.sock
nice  = 0

[MysqLd]
user = MysqL
pid-file = /var/run/MysqLd/MysqLd.pid
socket = /var/run/MysqLd/MysqLd.sock
port = 3306
basedir = /usr
datadir = /var/lib/MysqL
tmpdir = /tmp
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
expire_logs_days = 10
max_binlog_size = 100M
skip-federated

[MysqLdump]
quick
quote-names
max_allowed_packet = 16M

[isamchk]
key_buffer = 16M

客户:

MysqL  Ver 14.12 distrib 5.0.51a,for debian-linux-gnu (i486) using readline 5.2

服务器:

MysqL  Ver 14.12 distrib 5.0.75,for debian-linux-gnu (i486) using readline 5.2

解决方法

可能你试图检索和验证连接主机的反向DNS.您可以通过在服务器的my.cnf,[MysqLd]部分中启用skip_name_resolve来测试它.

如果实际上是这种情况(通过该参数消除延迟来证明),那么您可以通过为客户端正确设置DNS(正向和反向),或者始终使用skip_name_resolve运行来解决问题(这意味着您不能在GRANT表中使用主机名.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些