MySQL सर्वर रिमोट मशीन से सुलभ नहीं है


14

मैंने अपने स्थानीय उबंटू सर्वर (11.10) में MySQL सर्वर स्थापित किया है। मैं रिमोट मशीन से सर्वर से कनेक्ट नहीं कर सकता।

जब मैंने कोशिश की: - nmap localhost , यह निम्नलिखित दिखाता है

पोर्ट स्टेट सर्विस
22 / tcp खुला ssh
80 / टीसीपी खुला http
139 / टीसीपी ओपन नेटबायोस-एसएसएन
445 / टीसीपी खुला माइक्रोसॉफ़्ट-डीएस
631 / टीसीपी खुली आईपिप
3306 / tcp ओपन मायस्कल

इसका मतलब है कि 3306, MySQL पोर्ट खुला है, है ना? लेकिन जब मैंने कोशिश की nmap 192.168.0.50, जो कि सर्वर आईपी है, मुझे निम्नलिखित मिलता है: -

पोर्ट स्टेट सर्विस
22 / tcp खुला ssh
80 / टीसीपी खुला http
139 / टीसीपी ओपन नेटबायोस-एसएसएन
445 / टीसीपी खुला माइक्रोसॉफ़्ट-डीएस

क्या इसका मतलब यह है कि आईपी का उपयोग करते समय पोर्ट खुला नहीं है? यदि हां, तो मैं पोर्ट कैसे खोलूं?

मैंने निम्नलिखित कोड की कोशिश की थी, लेकिन लगता है कि यह काम नहीं किया।

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

यहाँ क्या गलत है?

जवाबों:


22

आपकी MySQL सेवा केवल लोकलहोस्ट (इंटरफ़ेस बाइंडिंग) की सेवा के लिए बाध्य है। सुरक्षा कारणों से यह डिफ़ॉल्ट है। यदि आपको वास्तव में इसे अन्य होस्ट से सीधे एक्सेस करने की आवश्यकता है, तो उबंटू पर MySQL तक दूरस्थ पहुंच को सक्षम करने का एक अच्छा तरीका है जिसे आप अनुसरण कर सकते हैं:

  1. जड़ के रूप में, अपने /etc/mysql/my.cnfया /etc/mysql/mysql.conf.d/mysqld.cnf अपने पसंदीदा संपादक के साथ खोलें , क्योंकि विभिन्न प्रणालियों पर यह अलग पाया जाता है।
  2. देखने के लिए [mysqld]वहाँ के लिए खंड, और में bind-addressकीवर्ड। यह आमतौर पर 127.0.0.1- "सामान्य" आईपी-पते से मेल खाने के लिए बदल जाता है
  3. फ़ाइल सहेजें, और सेवा को पुनः लोड करें (उदाहरण के लिए service mysql restart)

याद रखें कि आपको उपयुक्त GRANTs - जैसे, अपने दूरस्थ उपयोगकर्ताओं को रिमोट से उनके डेटाबेस (एस) तक पहुँचने में सक्षम बनाना चाहिए

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

ध्यान दें @'%', जिसका अर्थ है "किसी भी मेजबान से"।


पढ़ने के लिए खुशी है - और आपका स्वागत है!
इज़्ज़ी

लिंक टूट गया है :(
डिनो

2
@ डिनो अब नहीं। मैंने तय किया और इसमें एक अंश भी शामिल है, इसलिए यदि यह फिर से मर जाता है तो आवश्यक कदम अभी भी यहां हैं। मेरा बुरा मैं शुरू से नहीं था - लेकिन जैसा कि आप टाइमस्टैम्प से देख सकते हैं, यह मेरे शुरुआती उत्तरों में से एक था। हम सभी सीखते हैं :)
इज़्ज़ी

2
/etc/mysql/mysql.conf.d/mysqld.cnfमेरे सिस्टम के लिए बाइंड-एड्रेस फील्ड था ।
एरिक जी

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