2011-11-22 15 views
11

मेरे पास दो सर्वर हैं, दोनों सेंटोस 5.7 और सीपीनल-वर्तमान चल रहे हैं। एक x86 है और दूसरा x64 है। दोनों अपाचे 2.2.21, PHP 5.3.8 और MySQL 5.1 का उपयोग कर रहे हैं।PHP: दूरस्थ MySQL कनेक्शन बहुत धीमी

यदि मैं किसी भी सर्वर पर स्थानीय डेटाबेस से पूछता हूं, तो परिणाम तुरंत लौटा दिए जाते हैं। इस उदाहरण में कुछ हज़ार परिणाम लौटाए जा रहे हैं। हालांकि एक सर्वर से दूसरे सर्वर पर एक ही क्वेरी चलाना और क्वेरी को पूरा होने में 10+ सेकंड लगते हैं।

यदि मैं एक ही क्वेरी के साथ अपने वर्कस्टेशन से दूरस्थ डेटाबेस से पूछताछ करने के लिए MySQL वर्कबेंच 5.2 का उपयोग करता हूं, तो यह एक सेकंड से भी कम समय में पूरा होता है, जो मुझे लगता है कि PHP या किसी अन्य सर्वर से संबंधित समस्या है।

क्या किसी और को इस मुद्दे का सामना करना पड़ा है और इसे हल करने का तरीका पता है? किसी भी तरह की सहायता का स्वागत किया जाएगा।

+0

mysql_pconnect() http://www.php.net/manual/en/function.mysql-pconnect.php mayb कोशिश करें यह – YamahaSY

+0

मदद करेगा लगातार कनेक्शन का उपयोग करने में मदद नहीं करता है। क्वेरी अभी भी पूरा करने के लिए एक ही समय लेता है। – Reado

+0

क्या आपके डेटाबेस थोड़ा अलग हो सकते हैं? जैसे रिमोट सर्वर पर स्थानीय मशीन पर सभी इंडेक्स मौजूद नहीं हैं। PHP दूरस्थ रिमोट mysql सर्वर के साथ अच्छा काम करता है, शायद कुछ और समस्या है। नेटवर्क कनेक्शन के बारे में क्या? 'पिंग 'रिमोट सर्वर। – Oroboros102

उत्तर

11

पहला अनुमान है: यह एक DNS समस्या हो सकती है और आप my.cnf में --skip-name-resol विकल्प का उपयोग कर सकते हैं या आप MySQL अनुदान तालिका में केवल आईपी पते का उपयोग कर सकते हैं।

दूसरा अनुमान: यह सुरक्षा स्तर में एक समस्या हो सकती है और मैं सुझाव देता हूं कि अस्थायी रूप से सेलिनक्स या फ़ायरवॉल को अक्षम करें और परीक्षण फिर से चलाएं।

+0

मैं PHP और MySQL वर्कबेंच दोनों में दूरस्थ सर्वर से कनेक्ट करने के लिए आईपी पता का उपयोग कर रहा हूं। साथ ही "--skip-name-resol" कॉन्फ़िगरेशन फ़ाइल में है और सर्वर को पुनरारंभ किया गया है। अंततः selinux अक्षम है (cPanel चलाने के लिए आवश्यकताओं में से एक) और मैंने फ़ायरवॉल को अक्षम करने का प्रयास किया लेकिन इसका कोई फायदा नहीं हुआ। – Reado

+0

और आपने कोई सुधार देखा है? क्या आप कृपया मुझे बता सकते हैं कि कनेक्ट फ़ंक्शन कितना समय लेता है। मैं सोच रहा हूं कि वास्तव में समय लेने वाला क्या है जो वास्तव में आपके प्रश्न से स्पष्ट नहीं है। –

+3

कॉन्फ़िगरेशन फ़ाइल में, यह "skip-name-resol" होना चाहिए "--skip-name-resol" नहीं - पूर्ववर्ती डैश केवल तभी होते हैं जब आप MySQL सेवा शुरू करते समय पैरामीटर के रूप में उपयोग किया जाता है। –

4

मेरे पास एक PHP/MySQL अनुप्रयोग के साथ यह सटीक समस्या थी।

बस यह साझा करना चाहता था कि my.ini में "skip-name-resol" जोड़ना मेरे लिए तय किया गया है। मैं इस से थोड़ा उलझन में था क्योंकि डेस्कटॉप 1 पर मेरा एप्लिकेशन आईपी पते का उपयोग कर डेस्कटॉप 2 (mysql) तक पहुंच रहा था। मैं दो विंडोज 7 डेस्कटॉप के बीच जा रहा हूँ।