सामग्री पर जाएँ
KPanel पर जाएँKPanel पर जाएँ
विषय-सूची
वेबसाइट

SSH टनल के माध्यम से अपने डेटाबेस से कनेक्ट करना

स्वचालित अनुवाद। अंग्रेज़ी मूल उपलब्ध है।

आपकी साइट का डेटाबेस केवल सर्वर के अपने लूपबैक पते पर सुनता है, इसलिए TablePlus, Sequel Ace, DBeaver या MySQL Workbench जैसा डेस्कटॉप टूल इसे सीधे डायल नहीं कर सकता। एक SSH टनल उन टूल्स को एक लोकल पोर्ट देता है जो डेटाबेस तक फॉरवर्ड किया जाता है, और इसी तरह आप MySQL को इंटरनेट के लिए खोले बिना अपने डेटा पर एक उचित GUI पा सकते हैं।

टनल की आवश्यकता क्यों है

वेबसाइटें खोलें, साइट पर क्लिक करें, फिर डेटाबेस पर जाएं। कनेक्शन विवरण कार्ड होस्ट को 127.0.0.1 और पोर्ट को 3306 दिखाता है। यह कोई प्लेसहोल्डर नहीं है: डेटाबेस वास्तव में केवल उसी मशीन से कनेक्शन स्वीकार करता है जिस पर वह चल रहा है। सार्वजनिक इंटरनेट पर कुछ भी पोर्ट 3306 तक नहीं पहुंच सकता, जिससे हमले की एक पूरी श्रेणी समाप्त हो जाती है।

एक SSH टनल उस अंतर को सुरक्षित रूप से बंद कर देता है। आपका SSH क्लाइंट आपके लैपटॉप पर एक पोर्ट खोलता है, उसमें आप जो कुछ भी भेजते हैं उसे एन्क्रिप्ट करता है, और इसे सर्वर के अंदर से डेटाबेस को सौंप देता है, ठीक वैसे ही जैसे कोई स्थानीय प्रक्रिया कनेक्ट हुई हो।

Database tab showing connection details in KPanel

सबसे पहले आपको क्या चाहिए

एक टनल एक SSH कनेक्शन है, इसलिए इनमें से कुछ भी काम करने से पहले आपको साइट के विरुद्ध पंजीकृत एक SSH कुंजी की आवश्यकता है। पहले किसी साइट में SSH कुंजियां जोड़ना का पालन करें, फिर यहां वापस आएं।

चार चीजें इकट्ठा करें:

  • SSH होस्ट, पोर्ट और यूज़रनेम, सेटिंग्स से, फिर SSH कुंजियां, कनेक्शन विवरण कार्ड में।
  • डेटाबेस नाम, यूज़रनेम और पासवर्ड, डेटाबेस से। पासवर्ड दिखाने के लिए आंख वाले आइकन पर क्लिक करें और इसे अपने क्लिपबोर्ड पर रखने के लिए कॉपी आइकन पर क्लिक करें।

यदि Database टैब में No database provisioned for this site type लिखा है, तो इस साइट में कोई डेटाबेस नहीं है। स्टैटिक साइटें और कुछ Node.js साइटें बिना डेटाबेस के बनाई जाती हैं।

टर्मिनल से टनल खोलना

सामान्य ढांचा यह है: SSH कनेक्शन के दूसरी ओर 127.0.0.1:3306 पर एक लोकल पोर्ट फॉरवर्ड करें।

ssh -N -L 3307:127.0.0.1:3306 <ssh-username>@<ssh-host> -p <ssh-port>
  • -L 3307:127.0.0.1:3306 आपकी मशीन पर पोर्ट 3307 खोलता है और इसे सर्वर के लूपबैक इंटरफेस पर पोर्ट 3306 तक फॉरवर्ड करता है।
  • -N का मतलब है कि कोई शेल न चलाएं, बस टनल को खुला रखें।
  • यदि इस साइट के लिए कुंजी आपकी डिफ़ॉल्ट कुंजी नहीं है तो -i /path/to/key जोड़ें।

उस टर्मिनल विंडो को चलता रहने दें। जब तक यह खुला है, आपके लैपटॉप पर 127.0.0.1:3307 ही साइट का डेटाबेस है।

लोकल रूप से 3306 के बजाय 3307 का उपयोग करें। यदि आपकी अपनी मशीन पर MySQL या MariaDB इंस्टॉल है तो वह पहले से ही 3306 का उपयोग कर रहा होगा, और टनल "address already in use" त्रुटि के साथ बाइंड करने में विफल हो जाएगा। कोई भी खाली लोकल पोर्ट काम करेगा।

अपने डेटाबेस क्लाइंट को टनल की ओर इंगित करना

अपने GUI क्लाइंट में, इन मानों के साथ एक सामान्य MySQL कनेक्शन बनाएं:

फील्डमान
होस्ट127.0.0.1
पोर्ट3307 (जो भी लोकल पोर्ट आपने फॉरवर्ड किया है)
यूज़रDatabase टैब से Username
पासवर्डDatabase टैब से Password
डेटाबेसDatabase टैब से डेटाबेस नाम

Host फील्ड में SSH होस्ट न डालें। जहां तक क्लाइंट का सवाल है, वह आपकी अपनी मशीन पर एक डेटाबेस से बात कर रहा है।

अंतर्निर्मित SSH टैब वाले क्लाइंट

TablePlus, Sequel Ace, DBeaver और MySQL Workbench सभी टनल को खुद प्रबंधित कर सकते हैं, जिससे टर्मिनल खुला रखने की जरूरत नहीं पड़ती। फील्ड्स के दो समूह भरें:

  • SSH सेक्शन: SSH Keys पेज से होस्ट, पोर्ट, यूज़रनेम और प्राइवेट की फाइल।
  • डेटाबेस सेक्शन: होस्ट 127.0.0.1, पोर्ट 3306, साथ ही Database टैब से डेटाबेस नाम, यूज़र और पासवर्ड।

जब क्लाइंट टनल बनाता है, तो डेटाबेस सेक्शन में अपने लोकल फॉरवर्ड किए गए पोर्ट के बजाय 3306 का उपयोग करें। क्लाइंट सर्वर के दृष्टिकोण से कनेक्ट कर रहा है, इसलिए उसे असली पोर्ट दिखाई देता है।

इसके बजाय phpMyAdmin का उपयोग करना

यदि आपको केवल किसी टेबल पर एक त्वरित नज़र चाहिए, तो आपको टनल की बिल्कुल भी आवश्यकता नहीं है। Database टैब में एक phpMyAdmin कार्ड है जिसमें phpMyAdmin खोलें बटन है। यह आपको KPanel के माध्यम से साइन इन करता है, इसलिए याद रखने के लिए कोई अलग पासवर्ड नहीं है, और यह एक नए टैब में खुलता है जो पहले से ही इस साइट के डेटाबेस की ओर इंगित है।

ब्राउज़िंग, एकबारगी क्वेरी चलाने, या किसी मान की जांच करने के लिए phpMyAdmin तेज़ विकल्प है। बड़े एक्सपोर्ट, स्कीमा कार्य, और किसी भी ऐसी चीज़ के लिए जिसे आप स्क्रिप्ट करना चाहते हैं, टनल के माध्यम से डेस्कटॉप क्लाइंट बेहतर है। ब्राउज़र मार्ग के लिए phpMyAdmin का उपयोग करना देखें।

टनल के माध्यम से क्वेरी और डंप चलाना

टनल खुले होने पर, मानक कमांड लाइन टूल्स सामान्य रूप से काम करते हैं, आपके लोकल फॉरवर्ड किए गए पोर्ट की ओर इंगित करते हुए:

mysql -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name>

mysqldump -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name> > backup.sql

एक मैन्युअल डंप एक सुविधाजनक कॉपी है, बैकअप रणनीति नहीं। यह केवल उसी क्षण जितना ताज़ा है जब आपने इसे चलाया था, और यह उसी लैपटॉप पर रहता है जिससे आपने इसे चलाया था। KapsuleHost पहले से ही साइट का स्वचालित दैनिक बैकअप लेता है, जो 30 दिनों तक बना रहता है। लोकल .sql फ़ाइल पर भरोसा करने से पहले बैकअप लेना देखें।

समस्या निवारण

टनल खोलते समय "Address already in use". आपकी मशीन पर उस लोकल पोर्ट पर पहले से ही कुछ चल रहा है। कोई दूसरा पोर्ट चुनें, उदाहरण के लिए -L 3399:127.0.0.1:3306, और अपने क्लाइंट में पोर्ट को उससे मेल खाने के लिए बदलें।

डेटाबेस क्लाइंट से "Connection refused". टनल ऊपर नहीं है। जांचें कि SSH टर्मिनल अभी भी चल रहा है और उसने कोई त्रुटि नहीं दिखाई है, और यह कि आपके क्लाइंट में पोर्ट -L आर्गुमेंट में लोकल पोर्ट से मेल खाता है।

SSH कनेक्ट हो जाता है लेकिन क्लाइंट फिर भी टाइमआउट हो जाता है। पुष्टि करें कि आपने 127.0.0.1:3306 को फॉरवर्ड किया है, न कि सार्वजनिक होस्टनेम को। सार्वजनिक नाम को फॉरवर्ड करने से सर्वर को इंटरनेट के माध्यम से डेटाबेस तक पहुंचने के लिए कहा जाता है, जो बिल्कुल वही है जो अवरुद्ध है।

"Access denied for user". SSH लॉगिन सफल रहा लेकिन MySQL क्रेडेंशियल गलत हैं। यूज़रनेम और पासवर्ड को दोबारा टाइप करने के बजाय कॉपी आइकन का उपयोग करके Database टैब से फिर से कॉपी करें, और जांचें कि आप सही डेटाबेस नाम से कनेक्ट हो रहे हैं।

MySQL तक पहुंचने से पहले ही Permission denied (publickey). यह SSH स्तर है, डेटाबेस नहीं। किसी साइट में SSH कुंजियां जोड़ना में समस्या निवारण अनुभाग से गुजरें।

आगे कहां जाएं

क्या यह उपयोगी था?

क्या आप AI हैं? यह पेज Markdown में पढ़ें

संबंधित लेख

SFTP के माध्यम से कनेक्ट करना: FileZilla, Cyberduck, और कमांड लाइनSFTP (Secure File Transfer Protocol) आपको सर्वर पर आपकी साइट की फ़ाइलों तक सीधी पहुँच देता है। यह गाइड सफलतापूर्वक कनेक्ट करने के लिए आवश्यक हर चीज़ को कवर करती…SSL सर्टिफिकेट और HTTPSयह लेख सरल भाषा में बताता है कि SSL क्या है, KapsuleHost आपकी साइटों के लिए SSL को स्वचालित रूप से कैसे संभालता है, और यदि आपके प्रमाणपत्र में कोई समस्या आती है…वेबसाइट्स: कहाँ से शुरू करेंKapsuleHost पर वेबसाइट होस्टिंग कैसे काम करती है, किसी साइट के हर टैब पर क्या होता है, और आपके सामने जो काम है उसके लिए कौन सी गाइड पढ़नी चाहिए। होस्ट की गई…साइट अपटाइम मॉनिटरिंगKapsuleHost पर हर साइट को हर 60 सेकंड में स्वतः जाँचा जाता है, और Uptime टैब आपको परिणाम दिखाता है: वर्तमान स्थिति, अपटाइम प्रतिशत, response times, और पूरा…

अब भी समस्या है?

Kora से पूछें, जो आपके खाते को जानती है, या हमारी टीम से संपर्क करें।

संपर्क करेंसहायता को ईमेल करें