MySQL 서버에 대한 원격 연결에 시간이 오래 걸림 172.22.65.101: icmp_seq=2 ttl=64 time=0.000 ms 64

로컬 노트북의 다른 컴퓨터에서 연결하려는 Linux 노트북에서 실행되는 MySQL 5.0.75 서버가 있습니다.

이 연결에는 5-6 초가 걸립니다.

mysql -h 172.22.65.101 -u myuser -p123

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를 검색하고 확인하려는 시도가 지연되고 있습니다. skip_name_resolve서버의 my.cnf [mysqld]섹션 에서 켜서 테스트 할 수 있습니다 .

실제로는 지연을 제거하는 해당 매개 변수로 표시되는 경우 클라이언트에 대해 DNS를 올바르게 설정 (전진 및 역방향)하거나 skip_name_resolve항상 실행하여 문제를 해결할 수 있습니다. GRANT테이블 에서 호스트 이름을 사용하지 마십시오 ).


답변