कभी-कभी आपको एकल सर्वर पर एकाधिक MySQL इंस्टेंस चलाने की आवश्यकता हो सकती है। उदाहरण के लिए, आपको स्टेजिंग, परीक्षण और उत्पादन के लिए विभिन्न MySQL उदाहरणों का परीक्षण करने की आवश्यकता हो सकती है। इस लेख में, हम देखेंगे कि एक ही मशीन पर कई MySQL इंस्टेंस कैसे चलाएं, लेकिन अलग-अलग पोर्ट, अलग-अलग लॉगिंग फाइल और कॉन्फ़िगरेशन पैरामीटर के साथ।
एक ही मशीन पर एकाधिक MySQL इंस्टेंस कैसे चलाएं
यहां एक ही मशीन पर कई MySQL इंस्टेंस चलाने के चरण दिए गए हैं।
1. MySQL कॉन्फ़िगरेशन फ़ाइल खोलें
आमतौर पर, आपको MySQL कॉन्फ़िगरेशन फ़ाइल /etc/mysql/my.cnf . पर मिलेगी . टर्मिनल खोलें और MySQL कॉन्फ़िगरेशन फ़ाइल खोलने के लिए निम्न कमांड चलाएँ।
$ sudo vi /etc/mysql/my.cnf
2. एक से अधिक MySQL इंस्टेंस कॉन्फ़िगर करें
आपको डिफ़ॉल्ट MySQL कॉन्फ़िगरेशन कुछ वैसा ही मिलेगा जैसा नीचे दिखाया गया है।
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
कोड के उपरोक्त ब्लॉक को उसी फाइल में कॉपी + पेस्ट करें। बदलें [mysqld] [mysqld1] . के साथ और पोर्ट वैल्यू को 3307 में बदलें। इससे नया इंस्टेंस mysqld1 . बन जाएगा एक अलग प्रक्रिया नाम mysqld1 के साथ एक अलग पोर्ट 3307 पर चलाएं। इसी तरह, नीचे दिखाए गए अनुसार पिड-फाइल, सॉकेट और डेटादिर चर के फ़ाइल नाम बदलें।
सुनिश्चित करें कि नीचे दिए गए प्रत्येक उदाहरण के लिए डेटादिर फ़ोल्डर की प्रतिलिपि बनाएँ। यह भी सुनिश्चित करें कि उपयोगकर्ता mysql उपयोगकर्ता के पास इसकी पहुंच अनुमतियां हैं। प्रत्येक इंस्टेंस को अपनी डेटा निर्देशिका की आवश्यकता होती है।
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
अब mysqld1 mysqld . से अलग इंस्टेंस के रूप में चलेगा
इसी तरह, आप और उदाहरण बना सकते हैं जैसा कि नीचे दिखाया गया है
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
सुनिश्चित करें कि आप प्रत्येक उदाहरण के लिए अलग-अलग pid फ़ाइल, सॉकेट फ़ाइल और डेटा dir प्रदान करते हैं और सुनिश्चित करें कि उपयोगकर्ता mysql निर्देशिका अनुमतियों की आवश्यकता है क्योंकि mysql उपयोगकर्ता आवश्यक फ़ाइलें और निर्देशिका बनाने में सक्षम होना चाहिए।
3. अनेक उदाहरण प्रबंधित करें
आप mysqld . का उपयोग करके प्रत्येक उदाहरण को अलग से प्रारंभ कर सकते हैं नीचे आदेश। बदलें mysqlN अपनी पसंद के उदाहरण के साथ (जैसे mysql1, mysql2, आदि)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
यदि किसी कारण से, उपरोक्त कॉन्फ़िगरेशन आपके लिए काम नहीं करता है, तो my.cnf फ़ाइल को /etc/my.cnf पर कॉपी करें। स्थान और पुनः प्रयास करें। कभी-कभी, mysql /etc/mysql/my.cnf . पर कॉन्फ़िगर किए गए कई उदाहरणों को पंजीकृत नहीं करता है
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
यदि आप कमांड लाइन से किसी विशिष्ट उदाहरण (जैसे mysqld1) में लॉग इन करना चाहते हैं, तो आपको -S विकल्प के साथ इसकी सॉकेट फ़ाइल स्थान निर्दिष्ट करना होगा। अन्यथा, आप डिफ़ॉल्ट MySQL इंस्टेंस में लॉग इन हो जाएंगे।
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
उम्मीद है, यह लेख आपको एक ही सर्वर पर कई MySQL इंस्टेंस को कॉन्फ़िगर और प्रबंधित करने में मदद करेगा।
MySQL के लिए एक रिपोर्टिंग टूल की आवश्यकता है? Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!