सवाल MySQL सर्वर को एक से अधिक आईपी पते पर कैसे बाध्य करें?


क्या MySQL को एक से अधिक आईपी पते पर बांधने का कोई गुप्त तरीका है?

जहां तक ​​मैं देख सकता हूं बाँध-पता my.cnf में पैरामीटर एक से अधिक आईपी का समर्थन नहीं करता है और आप इसे एक से अधिक बार नहीं प्राप्त कर सकते हैं।


245
2017-09-02 16:04


मूल




जवाब:


नहीं, ऐसा नहीं है (मैंने अभी 1 घंटा पहले चेक किया था)। आप my.cnf में बाइंड-एड्रेस पर टिप्पणी कर सकते हैं:

#skip-networking
#bind-address                   = 127.0.0.1

यदि आप केवल 2 आईपी चाहते हैं, तो आपको फ़ायरवॉल का उपयोग करना होगा।


228
2017-09-02 16:08



सही बात। बाध्यकारी या तो 0, 1, या तक सीमित है सब सर्वर पर आईपी पते। - Joe
नोट, हालांकि, आप दोनों को निर्दिष्ट करके स्थानीय यूनिक्स सॉकेट और नेटवर्क सॉकेट दोनों को प्रकाशित और सेवा कर सकते हैं socket तथा bind-address विकल्प। - danorton
आज भी सच है। - Dennis Nolte
ये बेहूदा है। - Phillipp
@ एजेपी माइस्क्ल विशेषाधिकार प्रणाली में 'लोकलहोस्ट' और '127.0.0.1' अलग-अलग व्यवहार करता है। यहां पुष्टि की गई: एक यूनिक्स सॉकेट फ़ाइल का उपयोग किया जाता है यदि आप होस्ट नाम निर्दिष्ट नहीं करते हैं या यदि आप विशेष होस्ट नाम लोकहोस्ट निर्दिष्ट करते हैं। - Christian Lescuyer


127.0.0.x के लिए बाध्यकारी यह सभी उपकरणों के लिए उपलब्ध नहीं होगा, यह इसे केवल स्थानीय रूप से उपलब्ध कराएगा। यदि आप इसे सभी इंटरफेस पर उपलब्ध करना चाहते हैं, तो आपको 0.0.0.0 का उपयोग करना चाहिए। यदि आप इसे एक से अधिक से एक्सेस करना चाहते हैं, लेकिन सभी इंटरफेस से कम, तो आपको 0.0.0.0 और इंटरफ़ेस से फ़ायरवॉल से बांधना चाहिए, जिसे आप एक्सेस नहीं करना चाहते हैं।

साथ ही, सुरक्षा की दूसरी परत के रूप में, आपको यह सुनिश्चित करना चाहिए कि आपके सभी MySQL उपयोगकर्ताओं के पास मेजबान फ़ील्ड% (यानी कोई मेजबान) के अलावा किसी अन्य चीज़ पर सेट हो।


76
2017-09-02 16:29



जब तक आपके पास टूटा हुआ नेटवर्क स्टैक न हो तो आप 0.0.0.0 को संबोधित करने के लिए एक टीसीपी पोर्ट को बाध्य नहीं कर सकते। - John Gardeniers
आप कर सकते हैं 0.0.0.0 से बांधें। आप बस इसके लिए मार्ग नहीं जा सकते हैं। यदि आप लिनक्स पर हैं (या यहां तक ​​कि विंडोज़ पर, विंडोज़ के लिए नेटकैट इंस्टॉल करें) कोशिश करें: एक टर्मिनल में: एनसी -एल 0.0.0.0 4321 और दूसरे टर्मिनल में: टेलनेट <आपके कंप्यूटर के किसी भी इंटरफ़ेस का आईपी> 4321 और यह इससे जुड़ जाएगा। - Grey Panther
जैसा कि मैंने कहा, जब तक कि आपके पास टूटा हुआ नेटवर्क स्टैक न हो ... - John Gardeniers
@ जॉन गॉर्डनियर यह है कि यह विशेष पते के तहत परिभाषित लिनक्स आईपी (7) मैन पेज में क्यों है: INADDR_ANY (0.0.0.0) means any address for binding;? - ebyrob
डेबियन पर, एक फाइल बनाएँ /etc/mysql/conf.d/bindaddress.cnf सामग्री के साथ फाइल करें [mysqld] \n bind-address = 0.0.0.0 - Yves Martin


आप एक से अधिक आईपी पते से जुड़ नहीं सकते हैं, लेकिन आप इसके बजाय सभी उपलब्ध आईपी पते से जुड़ सकते हैं। यदि ऐसा है, तो बस उपयोग करें 0.0.0.0 आपकी MySQL कॉन्फ़िगरेशन फ़ाइल (उदा। /etc/mysql/my.cnf) में बाध्यकारी पते के लिए निम्नानुसार है:

bind-address    = 0.0.0.0

यदि पता 0.0.0.0 है, तो सर्वर सभी सर्वर होस्ट आईपीवी 4 इंटरफेस पर टीसीपी / आईपी कनेक्शन स्वीकार करता है।

इसके अलावा अगर पता है ::, सर्वर सभी सर्वर होस्ट आईपीवी 4 और आईपीवी 6 इंटरफेस पर टीसीपी / आईपी कनेक्शन स्वीकार करता है। सभी सर्वर इंटरफेस पर आईपीवी 4 और आईपीवी 6 कनेक्शन दोनों को अनुमति देने के लिए इस पते का उपयोग करें।

या आप बस टिप्पणी कर सकते हैं bind-address= पूरी तरह से, तो यह सभी पते से बंधेगा। लेकिन सुनिश्चित करें कि आपके पास नहीं है skip-networking अगर आप रिमोट कनेक्शन को भी अनुमति देना चाहते हैं तो अपने my.cnf में सक्षम (और पढ़ें: MySQL: रिमोट और स्थानीय कनेक्शन दोनों को अनुमति दें)।

बाध्यकारी पता बदलने के बाद, अपने MySQL सर्वर को पुनरारंभ करना न भूलें:

sudo service mysql restart

आखिरकार आप मास्टर / स्लेव प्रतिकृति के साथ एक मशीन (विभिन्न बंदरगाहों) पर MySQL के कई उदाहरण चलाने पर विचार कर सकते हैं। प्रतिकृति एक MySQL डेटाबेस सर्वर (मास्टर) से डेटा को एक या अधिक MySQL डेटाबेस सर्वर (दास) में कॉपी करने में सक्षम बनाता है।

और पढो:


33
2017-08-11 09:37



दरअसल मैं कुछ लोगों से जुड़ने का विकल्प उम्मीद कर रहा था, लेकिन सभी पते नहीं। - BlaM


नहीं आप नहीं कर सकते। जिस पृष्ठ से आप स्पष्ट रूप से लिंक करते हैं, वह कहता है:

आईपी ​​पता से बांधने के लिए। केवल एक पता चुना जा सकता है। यदि यह विकल्प कई बार निर्दिष्ट किया गया है, तो दिया गया अंतिम पता उपयोग किया जाता है।

यदि कोई पता या 0.0.0.0 निर्दिष्ट नहीं है, तो सर्वर सभी इंटरफेस पर सुनता है।


19
2017-09-14 20:45





जैसा कि अन्य ने उत्तर दिया है, अभी तक एक से अधिक इंटरफ़ेस से चुनने का कोई तरीका नहीं है।

लिनक्स में कुछ टीसीपी उपकरण हैं जो इसे संभव बनाते हैं। इस सेटअप में, आप 127.0.0.1 को सुनने के लिए mysql को कॉन्फ़िगर करेंगे और फिर उपयोग करें REDIR मनमाने ढंग से इंटरफेस पर इसका पर्दाफाश करने के लिए।

मैं वर्चुअल बॉक्स अतिथि को होस्ट मशीन पर स्थापित mysql देखने में मदद करने के लिए इसका उपयोग कर रहा हूं।

redir --laddr=192.168.33.1 --lport=3306 --caddr=127.0.0.1 --cport=3306 &

8
2018-02-24 20:23





मुझे लगता है कि आपका प्रश्न इस बग से संबंधित है http://bugs.mysql.com/bug.php?id=14979 बग रिपोर्ट कुछ कामकाज का सुझाव देती है।


6
2017-09-02 16:14



एक MySQL सुविधा अनुरोध 2005 से वापस डेटिंग! - Tonin


में my.cnf बदलें (आमतौर पर /etc/mysql/my.cnf लिनक्स पर या विंडोज़ चेक के लिए इस जवाब।

bind-address                   = 127.0.0.1

सेवा मेरे

bind-address                   = 0.0.0.0

फिर mysql (उबंटू पर पुनरारंभ करें सेवा mysql पुनरारंभ करें) विंडोज़ पर आमतौर पर सेवा के माध्यम से पुनरारंभ करें विन + आर सेवाएं.एमसीसी 

0.0.0.0 यह मेरे उपलब्ध आईपी के पोर्ट को my.cnf में दिए गए पोर्ट के साथ बाध्य करने के लिए कहता है


2
2017-09-19 18:34