कभी-कभी MySQL से दूरस्थ कनेक्शन को सक्षम करना उपयोगी हो सकता है। यह आपको किसी एप्लिकेशन या किसी भिन्न सिस्टम पर चल रहे MySQL क्लाइंट से अपने किसी सर्वर पर सीधे MySQL से कनेक्ट करने की अनुमति देता है।
MySQL को दूरस्थ रूप से एक्सेस करने के दो अलग-अलग तरीके हैं:
- एसएसएच सुरंग का उपयोग करना।
- दूरस्थ सिस्टम से MySQL तक सीधी पहुंच को सक्षम करना।
SSH टनल का उपयोग करके MySQL से कनेक्ट करना
विकास उद्देश्यों के लिए दूरस्थ MySQL एक्सेस के लिए SSH सुरंग का उपयोग करना सबसे आसान और सबसे सुरक्षित विकल्प है। एक एसएसएच सुरंग ऐसा लगेगा जैसे MySQL आपके स्थानीय सिस्टम पर चल रहा है। SSH एक स्थानीय पोर्ट खोलकर और उस पोर्ट पर सभी संचार को आपके सर्वर पर चल रहे MySQL के माध्यम से निर्बाध रूप से स्थानांतरित करके करता है।
Mac या Linux से SSH टनल बनाने के लिए, आप -L
के साथ कमांड लाइन SSH कमांड चला सकते हैं स्थानीय पोर्ट अग्रेषण सक्षम करने के लिए।
ssh -L localhost:2000:localhost:3306 serverpilot@SERVER_IP_ADDRESS
ऊपर के उदाहरण में, SSH आपके स्थानीय सिस्टम पर पोर्ट 2000 खोलेगा, और फिर आप इस स्थानीय पोर्ट से कनेक्ट करके MySQL के साथ संचार कर सकते हैं। उदाहरण के लिए, आप MySQL कमांड का उपयोग करके कनेक्ट कर सकते हैं:
mysql --protocol=tcp --host=localhost --port=2000 --user=DB_USER_NAME -p--protocol=tcp को न छोड़ें या MySQL चुपचाप --host को अनदेखा कर सकता है और --पोर्ट विकल्प।
आप लोकप्रिय विंडोज एसएसएच क्लाइंट पुटी का उपयोग करके विंडोज़ पर एसएसएच सुरंग भी बना सकते हैं।
दूरस्थ सिस्टम से MySQL तक सीधी पहुंच सक्षम करना
चेतावनी! MySQL तक सीधी पहुंच की अनुमति देने से आपके सर्वर के हमलावरों द्वारा समझौता किए जाने का खतरा बढ़ जाता है। चेतावनी! MySQL डिफ़ॉल्ट रूप से सुरक्षित कनेक्शन का उपयोग नहीं करता है। MySQL मैनुअल में MySQL के साथ SSL पर अधिक जानकारी है।चरण 1:MySQL को सभी इंटरफेस पर सुनने के लिए कॉन्फ़िगर करें।
डिफ़ॉल्ट रूप से, MySQL केवल लोकलहोस्ट . पर कनेक्शन के लिए सुनता है , इसलिए पहला कदम सभी इंटरफेस पर सुनने के लिए अपने डेटाबेस सर्वर पर MySQL को पुन:कॉन्फ़िगर करना है। ऐसा करने के लिए, अपने सर्वर में रूट . के रूप में लॉग इन करें ।
यदि आप एक Ubuntu 16.04 या 18.04 सर्वर चला रहे हैं, तो इस फ़ाइल को संपादित करें:
/etc/mysql/mysql.conf.d/mysqld.cnf
14.04 या 12.04 सर्वर के लिए, इस फ़ाइल को संपादित करें:
/etc/mysql/my.cnf
किसी भी फ़ाइल में निम्न पंक्ति खोजें:
bind-address = 127.0.0.1
बाइंड-एड्रेसबदलें से 0.0.0.0 :
bind-address = 0.0.0.0
इस फ़ाइल को सहेजें और फिर निम्न कमांड को root . के रूप में चलाएँ :
sudo service mysql restart
चरण 2:अपने सर्वर के फ़ायरवॉल में TCP पोर्ट 3306 खोलें।
ServerPilot द्वारा कॉन्फ़िगर किया गया फ़ायरवॉल आपके सर्वर के बाहर से MySQL तक सभी पहुँच को अवरुद्ध करता है। तो, आपको MySQL तक पहुंच की अनुमति देने के लिए अपने फ़ायरवॉल को अनुकूलित करने की आवश्यकता होगी।
अपने सर्वर के बाहर से MySQL तक पहुंच खोलने के लिए, अपने फ़ायरवॉल को अनुकूलित करने पर हमारा लेख देखें।
EC2 के लिए अतिरिक्त चरण:अपने सुरक्षा समूहों में TCP पोर्ट 3306 की अनुमति दें।
अगर यह एक EC2 सर्वर है, तो आपको अपने सर्वर के सुरक्षा समूहों में पोर्ट 3306 को भी अनुमति देनी होगी।
दूरस्थ होस्ट का उपयोग करने के लिए अपने ऐप को कॉन्फ़िगर करें।
एक बार जब आप दूरस्थ MySQL सर्वर सेट कर लेते हैं, तो आप डेटाबेस लेनदेन के लिए उस होस्ट का उपयोग करने के लिए अपने ऐप को कॉन्फ़िगर करना चाहेंगे। यह आमतौर पर ऐप की कॉन्फ़िगरेशन फ़ाइल में सेट किया जाता है, और हम अपने उदाहरण के रूप में वर्डप्रेस का उपयोग करेंगे।
ऐप की wp-config.php फ़ाइल खोलें।
इस लाइन पर:
define('DB_HOST', 'localhost');
'लोकलहोस्ट' को अपने दूरस्थ MySQL सर्वर के आईपी पते या पूर्ण होस्टनाम में बदलें। IP पता आमतौर पर एक तेज़ और अधिक विश्वसनीय विकल्प होगा, क्योंकि यह DNS रिज़ॉल्यूशन पर निर्भर नहीं करता है।
फ़ाइल सहेजें और बाहर निकलें, और आप पूरी तरह तैयार हैं! अब आप यह सुनिश्चित करने के लिए अपने ऐप का परीक्षण कर सकते हैं कि यह ठीक से काम कर रहा है।