AWS Tutorial For Beginners | AWS Full Course - Learn AWS In 10 Hours | AWS Training | Edureka
विषयसूची:
- MySQL सर्वर को कॉन्फ़िगर करना
- रिमोट मशीन से उपयोगकर्ता तक पहुँच प्रदान करना
- फ़ायरवॉल को कॉन्फ़िगर करना
- iptables
- UFW
- FirewallD
- बदलावों का सत्यापन
- निष्कर्ष
डिफ़ॉल्ट रूप से, MySQL सर्वर केवल लोकलहोस्ट से कनेक्शन के लिए सुनता है, जिसका अर्थ है कि इसे केवल उसी होस्ट पर चल रहे एप्लिकेशन तक पहुँचा जा सकता है।
हालाँकि, कुछ स्थितियों में, दूरस्थ स्थान से MySQL सर्वर तक पहुँच आवश्यक है। उदाहरण के लिए, जब आप अपने स्थानीय सिस्टम से दूरस्थ MySQL सर्वर से कनेक्ट करना चाहते हैं, या एक बहु-सर्वर परिनियोजन का उपयोग करते समय जहां एप्लिकेशन डेटाबेस सर्वर से एक अलग मशीन पर चल रहा है। एक विकल्प SSH टनल के माध्यम से MySQL सर्वर को एक्सेस करना होगा और दूसरा रिमोट कनेक्शन स्वीकार करने के लिए MySQL सर्वर को कॉन्फ़िगर करना है।
इस गाइड में, हम एक MySQL सर्वर को रिमोट कनेक्शन की अनुमति देने के लिए आवश्यक चरणों से गुजरेंगे। मारियाडीबी के लिए वही निर्देश लागू होते हैं।
MySQL सर्वर को कॉन्फ़िगर करना
पहला कदम एक विशिष्ट आईपी पते या मशीन पर सभी आईपी पते को सुनने के लिए MySQL सर्वर सेट करना है।
यदि MySQL सर्वर और क्लाइंट निजी नेटवर्क पर एक दूसरे के साथ संवाद कर सकते हैं, तो सबसे अच्छा विकल्प MySQL सर्वर को केवल निजी आईपी पर सुनने के लिए सेट करना है। अन्यथा, यदि आप किसी सार्वजनिक नेटवर्क पर सर्वर से कनेक्ट करना चाहते हैं तो मशीन पर सभी आईपी पते पर सुनने के लिए MySQL सर्वर सेट करें।
ऐसा करने के लिए, आपको MySQL कॉन्फ़िगरेशन फ़ाइल को संपादित करने और
bind-address
विकल्प के मूल्य को जोड़ने या बदलने की आवश्यकता है। आप एक एकल आईपी पता और आईपी रेंज सेट कर सकते हैं। यदि पता
0.0.0.0
, तो MySQL सर्वर सभी होस्ट IPv4 इंटरफेस पर कनेक्शन स्वीकार करता है। यदि आपके पास आपके सिस्टम पर IPv6 कॉन्फ़िगर है, तो
0.0.0.0
बजाय,
::
उपयोग करें।
वितरण के आधार पर MySQL कॉन्फ़िगरेशन फ़ाइल का स्थान भिन्न होता है। उबंटू और डेबियन में फ़ाइल
/etc/mysql/mysql.conf.d/mysqld.cnf
पर स्थित है, जबकि Red Hat आधारित वितरण जैसे CentOS में, फ़ाइल
/etc/my.cnf
पर स्थित है।
अपने पाठ संपादक के साथ फ़ाइल खोलें:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
एक पंक्ति के लिए खोजें जो
bind-address
शुरू होती है और इसके मूल्य को आईपी पते पर सेट करती है जिस पर एक MySQL सर्वर को सुनना चाहिए।
डिफ़ॉल्ट रूप से, मान
127.0.0.1
सेट होता है (केवल स्थानीयहोस्ट में सुनता है)।
इस उदाहरण में, हम मान को
0.0.0.0
बदलकर सभी IPv4 इंटरफेस पर सुनने के लिए MySQL सर्वर सेट करेंगे
bind-address = 0.0.0.0 # skip-networking
यदि कोई लाइन है जिसमें
skip-networking
, तो उसे हटा दें या लाइन की शुरुआत में
#
जोड़कर टिप्पणी करें।
MySQL 8.0 और उच्चतर में,
bind-address
निर्देश मौजूद नहीं हो सकता है। इस मामले में, इसे के तहत जोड़ें
अनुभाग।
एक बार हो जाने के बाद, परिवर्तनों को प्रभावी करने के लिए MySQL सेवा को पुनरारंभ करें। केवल रूट या sudo विशेषाधिकार वाले उपयोगकर्ता सेवाओं को पुनः आरंभ कर सकते हैं।
डेबियन या उबंटू पर MySQL सेवा को पुनरारंभ करने के लिए, टाइप करें:
sudo systemctl restart mysql
RedHat पर आधारित सेवा को फिर से शुरू करने के लिए CentOS जैसे वितरण:
रिमोट मशीन से उपयोगकर्ता तक पहुँच प्रदान करना
अगला कदम दूरस्थ उपयोगकर्ता के लिए डेटाबेस तक पहुंच की अनुमति देना है।
टाइप करके मूल उपयोगकर्ता के रूप में MySQL सर्वर में लॉग इन करें:
sudo mysql
mysql -uroot -p
MySQL शेल के अंदर से, रिमोट यूजर के लिए एक्सेस देने के लिए
GRANT
स्टेटमेंट का उपयोग करें।
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
कहाँ पे:
-
database_name
उसdatabase_name
का नाम है जिसे उपयोगकर्ता कनेक्ट करेगा।user_name
नाम MySQL उपयोगकर्ता od है।ip_address
आईपी एड्रेस है जिससे उपयोगकर्ता कनेक्ट होगा। उपयोगकर्ता को किसी भी आईपी पते से कनेक्ट करने की अनुमति देने के लिए%
का उपयोग करें।user_password
उपयोगकर्ता पासवर्ड है।
उदाहरण के लिए, आईपी
10.8.0.5
साथ एक क्लाइंट मशीन से पासवर्ड
my_passwd
साथ
foo
नामक एक उपयोगकर्ता को डेटाबेस
dbname
तक पहुंच प्रदान करने के लिए, आप दौड़ेंगे:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
फ़ायरवॉल को कॉन्फ़िगर करना
अंतिम चरण दूरस्थ मशीनों से पोर्ट
3306
(MySQL डिफ़ॉल्ट पोर्ट) पर ट्रैफ़िक की अनुमति देने के लिए अपने फ़ायरवॉल को कॉन्फ़िगर करना है।
iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
किसी विशिष्ट IP पते से पहुंच की अनुमति दें:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
यूएफडब्ल्यू उबंटू में डिफ़ॉल्ट फ़ायरवॉल टूल है। इंटरनेट पर किसी भी आईपी पते से प्रवेश की अनुमति देने के लिए (बहुत असुरक्षित) रन:
sudo ufw allow 3306/tcp
किसी विशिष्ट IP पते से पहुंच की अनुमति दें:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD CentOS में डिफ़ॉल्ट फ़ायरवॉल प्रबंधन उपकरण है। इंटरनेट पर किसी भी आईपी पते से पहुंच की अनुमति देने के लिए (बहुत असुरक्षित) प्रकार:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload
एक विशिष्ट पोर्ट पर एक विशिष्ट आईपी पते से पहुंच की अनुमति देने के लिए, आप या तो एक नया फ़ायरवॉलडी ज़ोन बना सकते हैं या एक समृद्ध नियम का उपयोग कर सकते हैं। खैर
mysqlzone
नाम से एक नया क्षेत्र
mysqlzone
:
sudo firewall-cmd --new-zone=mysqlzone --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload
बदलावों का सत्यापन
यह सत्यापित करने के लिए कि दूरस्थ उपयोगकर्ता MySQL सर्वर से जुड़ सकता है, निम्नलिखित कमांड चलाएगा:
mysql -u user_name -h mysql_server_ip -p
जहाँ
user_name
उस उपयोगकर्ता का नाम है जिसे आपने एक्सेस किया था और
mysql_server_ip
होस्ट का IP पता है जहाँ MySQL सर्वर चलता है।
यदि सब कुछ सही ढंग से सेटअप किया गया है, तो आप दूरस्थ MySQL सर्वर पर लॉगिन कर पाएंगे।
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
नीचे दी गई त्रुटि इंगित कर रही है कि आप जिस उपयोगकर्ता को लॉग इन करने का प्रयास कर रहे हैं, उसके पास दूरस्थ MySQL सर्वर तक पहुँचने की अनुमति नहीं है।
"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"
निष्कर्ष
MySQL, डिफ़ॉल्ट रूप से सबसे लोकप्रिय ओपन-सोर्स डेटाबेस सर्वर, केवल लोकलहोस्ट पर आने वाले कनेक्शन के लिए सुनता है।
माईएसक्यूएल सर्वर से दूरस्थ कनेक्शन की अनुमति देने के लिए, आपको निम्न चरणों का पालन करना होगा:
- सभी या किसी विशिष्ट इंटरफ़ेस पर सुनने के लिए MySQL सर्वर को कॉन्फ़िगर करें। दूरस्थ उपयोगकर्ता तक पहुँच प्राप्त करें। अपने फ़ायरवॉल में MySQL पोर्ट को खोलें।
मेट्रेटेड कनेक्शन पर अपडेट स्वचालित रूप से डाउनलोड होने की अनुमति दें

आप विंडोज 10 अपडेट्स को डाउनलोड और इंस्टॉल कर सकते हैं जब भी आप एक मीट्रिक कनेक्शन का उपयोग कर रहे हों, सेटिंग्स, REGEDIT या GPEDIT के माध्यम से।
दूरस्थ कनेक्शन के लिए विंडोज़ 8 में दूरस्थ डेस्कटॉप ऐप का उपयोग करना

Windows 8 में दूरस्थ डेस्कटॉप ऐप को दूरस्थ कनेक्शन के लिए कैसे सेट अप करें और उसका उपयोग करें, जानें।
कैसे सर्वर त्रुटि खो करने के लिए यूट्यूब Android कनेक्शन को ठीक करने के लिए

यहां YouTube Android त्रुटि को ठीक करने के चरण हैं जो सर्वर लॉस्ट से कनेक्शन कहते हैं, पुन: प्रयास करने के लिए स्पर्श करें।