MySQL सर्वर का रिमोट कनेक्शन बहुत लंबा होता है


10

मेरे पास मेरे लिनक्स नोटबुक पर एक 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 होस्ट पर, मैं देख सकता हूं कि कमांड "कनेक्ट" है और उपयोगकर्ता "अनअथेंटेड यूजर" है। यह कनेक्शन स्थापित होने तक रहता है। (उपयोगकर्ता तब "myuser" के रूप में प्रदर्शित होता है और कमांड "स्लीप" होता है)

मैं एक डेवलपर हूं और अड़चन को खोजने के बारे में आपके सुझावों की आवश्यकता है!

होस्ट पर मेरा 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

जवाबों:


17

संभवतः आप कनेक्टिंग होस्ट के रिवर्स DNS को पुनः प्राप्त करने और सत्यापित करने के प्रयास में पिछड़ रहे हैं। आप skip_name_resolveसर्वर के my.cnf, [mysqld]अनुभाग में चालू करके इसका परीक्षण कर सकते हैं ।

यदि यह वास्तव में मामला है (देरी को समाप्त करने वाले उस पैरामीटर द्वारा प्रदर्शित), तो आप क्लाइंट के लिए DNS को ठीक से (आगे और रिवर्स) स्थापित करके या skip_name_resolveहर समय (जिसका अर्थ है कि आप कर सकते हैं ) को हल करके समस्या का समाधान कर सकते हैं। 'अपने GRANTटेबल में होस्टनाम का उपयोग न करें )।


यह तय हो गया! मैंने अपने MySQL मेजबान के my.cnf में Skip_name_resolve को परिभाषित किया, MySQL को फिर से शुरू किया और समस्या हल हो गई। मैं तुम्हें कुछ बियर देना। :)
Lennart

सेवा का होकर ख़ुशी है। :)
अराजकता

1
बहुत बहुत धन्यवाद! हालांकि यह स्पष्ट होना चाहिए कि (यदि कोई भी मेरे जैसा गड़बड़ करता है), तो यह केवल एक लाइन पर "स्किप_नाम_सर्कुल" है, न कि "स्किप_नाम_सेल्फ = 1" या कुछ भी ... अन्यथा आपकी सेवा शुरू नहीं होगी!
जेम्स क्रॉली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.