वेबसाइट
आपके डेटाबेस से दूरस्थ रूप से कनेक्ट करना
Where to find your database credentials, why direct remote connections on port 3306 are refused, and how to connect a desktop tool through an SSH tunnel instead.
आपका डेटाबेस दूर से कहाँ से कनेक्ट कर सकते हैं, यह जानने के लिए आपके डेटाबेस क्रेडेंशियल्स कहाँ मिलते हैं, पोर्ट 3306 पर सीधा रिमोट कनेक्शन क्यों अस्वीकार किया जाता है, और डेस्कटॉप टूल्स को SSH टनल के माध्यम से कनेक्ट कैसे करें।
प्रत्येक KapsuleHost वेब होस्टिंग साइट के साथ एक डेटाबेस आता है, इसका अपना डेटाबेस उपयोगकर्ता होता है, और आप किसी भी समय क्रेडेंशियल्स पढ़ सकते हैं। आप जो नहीं कर सकते, वह यह है कि इंटरनेट के माध्यम से सीधे इससे कनेक्ट करें, और यह जानबूझकर है। यह गाइड क्रेडेंशियल्स, दो समर्थित तरीके, और डेस्कटॉप डेटाबेस टूल्स के लिए आवश्यक टनल सेट अप करने के बारे में बताता है।
अपने क्रेडेंशियल्स ढूँढना
वेबसाइटें पर जाएँ, साइट पर क्लिक करें, फिर फाइलें, फिर डेटाबेस।
यह पृष्ठ पाँच चीजें दिखाता है:
| फील्ड | वैल्यू |
|---|---|
| होस्ट | 127.0.0.1 |
| पोर्ट | 3306 |
| डेटाबेस | आपका डेटाबेस नाम |
| उपयोगकर्ता नाम | आपका डेटाबेस उपयोगकर्ता |
| पासवर्ड | छिपा हुआ, प्रकट करने वाली बटन और कॉपी बटन के साथ |
पासवर्ड एक बार का प्रकटीकरण नहीं है। आप किसी भी समय वापस आकर इसे पढ़ सकते हैं, इसलिए इसे अलग से संग्रहीत करने की कोई आवश्यकता नहीं है।
डेटाबेस सर्वर MariaDB 10.11 है, जो MySQL-संगत है। यह एक व्यावहारिक तरीके से महत्वपूर्ण है: हाल के MySQL सर्वर से निर्यात किया गया एक डंप में वह कोलेशन हो सकते हैं जिन्हें MariaDB नहीं पहचानता है, और आयात "अज्ञात कोलेशन" त्रुटि के साथ विफल हो जाएगा। यदि ऐसा होता है, तो utf8mb4_unicode_ci जैसी व्यापक रूप से संगत कोलेशन का उपयोग करके पुनः निर्यात करें, या आयात से पहले डंप फाइल में इसे खोजें और बदलें।

होस्ट 127.0.0.1 क्यों है
127.0.0.1 का अर्थ है "यह मशीन"। डेटाबेस सर्वर केवल मशीन के अपने आंतरिक इंटरफेस पर सुनता है, और पोर्ट 3306 फ़ायरवॉल पर इंटरनेट के लिए खुला नहीं है। पैनल में इसे खोलने के लिए कोई सेटिंग नहीं है, और इसके लिए कोई IP अनुमति सूची नहीं है।
यह कोई व्यक्तिगत त्रुटि नहीं है। इंटरनेट-सामने का डेटाबेस पोर्ट होस्टिंग में सबसे विश्वसनीय रूप से शोषित चीजों में से एक है: इसे लगातार स्कैन किया जाता है, यह किसी को भी जो कनेक्ट करता है उसे संस्करण जानकारी लीक करता है, और एक कमजोर पासवर्ड आपको पूरी साइट खो देता है। इसे बंद रखना जोखिम की पूरी श्रेणी को हटा देता है।
तो आपके साइट के सार्वजनिक IP पते और पोर्ट 3306 का उपयोग करके एक कनेक्शन स्ट्रिंग हमेशा विफल होगी, कहीं से भी, हर योजना पर। इसके बजाय दो समर्थित तरीके हैं।
विकल्प 1: ब्राउज़र में phpMyAdmin
त्वरित देखभाल, संपादन, या छोटे आयात या निर्यात के लिए सबसे आसान।
डेटाबेस पृष्ठ पर, phpMyAdmin खोलें पर क्लिक करें। आप सीधे अपने साइट के अपने क्रेडेंशियल्स के साथ साइन इन होते हैं और आप केवल अपने डेटाबेस देखते हैं।
जो लिंक यह करता है वह जानबूझकर अल्पकालिक होता है, और यह उन तरीकों से विफल होता है जो त्रुटियों जैसे दिखते हैं लेकिन नहीं हैं:
- यह 60 सेकंड में समाप्त हो जाता है। जब यह दिखाई दे तो इसे तुरंत क्लिक करें।
- यह एक बार काम करता है। वापस जाना और पुनः लोड करना काम नहीं करेगा; एक नया उत्पन्न करें।
- इसे उसी ब्राउज़र और उसी नेटवर्क से खोला जाना चाहिए जिससे आपने इसका अनुरोध किया था। यदि आप लिंक को किसी अन्य डिवाइस पर कॉपी करते हैं, या आपका कनेक्शन आधे रास्ते में पता बदल देता है, तो इसे अस्वीकार किया जाता है।
यदि आप "यह लिंक पहले से ही उपयोग किया जा चुका है" या IP असंगति के बारे में एक संदेश देखते हैं, तो सुरक्षा काम कर रही है। डेटाबेस पृष्ठ पर वापस जाएँ और फिर से बटन पर क्लिक करें।
phpMyAdmin के साथ काम करने के लिए, phpMyAdmin का उपयोग करना देखें।
विकल्प 2: डेस्कटॉप टूल्स के लिए SSH टनल
यदि आप डेस्कटॉप क्लाइंट का उपयोग करना चाहते हैं, तो यह समर्थित पथ है। टनल सर्वर के लिए एक एन्क्रिप्टेड कनेक्शन खोलता है और आपकी मशीन पर एक पोर्ट को इसके माध्यम से आगे करता है, इसलिए आपका क्लाइंट जो स्थानीय डेटाबेस जैसा दिखता है उससे कनेक्ट करता है।
आपको पहले क्या चाहिए
साइट पर एक SSH कुंजी। पासवर्ड प्रमाणीकरण स्वीकार नहीं है, तो यह कदम वैकल्पिक नहीं है।
- वेबसाइटें पर जाएँ, साइट, फाइलें, फिर SSH कुंजियाँ।
- या तो सार्वजनिक कुंजी जो आप पहले से उपयोग करते हैं उसे पेस्ट करें, या पैनल से एक नई कुंजी जोड़ी उत्पन्न करें।
- उस पृष्ठ पर दिखाए गए उपयोगकर्ता नाम पर ध्यान दें। यह आपके साइट का सिस्टम उपयोगकर्ता है, और यह वह है जिसके रूप में आप कनेक्ट करते हैं।
यदि आप पैनल में एक कुंजी उत्पन्न करते हैं, तो निजी कुंजी एक बार दिखाई जाती है और फिर कभी नहीं। इसे तुरंत सहेजें, और इसे केवल आप ही पढ़ सकते हैं ऐसी जगह रखें।
आप यह भी एक ईमेल प्राप्त करेंगे जब भी कोई कुंजी आपकी साइट में जोड़ी जाती है। यह जानबूझकर है। यदि एक आता है और यह आप नहीं थे, तो इसे उसी पृष्ठ से तुरंत रद्द करें और यदि आपकी साइट हैक की गई है पढ़ें।
पूर्ण वॉकथ्रू के लिए SSH कुंजियाँ जोड़ना देखें।
SFTP टैब पर बनाया गया SFTP खाता टनल के लिए काम नहीं करेगा। वे खाते केवल फाइल स्थानांतरण के लिए हैं, कोई शेल और कोई पोर्ट फॉरवर्डिंग नहीं। टनलिंग के लिए एक कुंजी के साथ साइट के अपने SSH उपयोगकर्ता की आवश्यकता होती है। SFTP पहुंच देखें।
टनल खोलना
अपनी मशीन पर एक टर्मिनल से:
ssh -N -L 3307:127.0.0.1:3306 your-ssh-user@cp1-kapsule.kapsulehost.com
your-ssh-user को SSH कुंजियों पृष्ठ से उपयोगकर्ता नाम से बदलें। इसे तोड़ते हुए:
-Nका अर्थ कोई कमांड न चलाएँ, बस टनल को खुला रखें।-L 3307:127.0.0.1:3306आपकी मशीन पर पोर्ट 3307 को सर्वर पर पोर्ट 3306 को आगे करता है।- पोर्ट 3307 का उपयोग 3306 के बजाय किया जाता है ताकि यह एक डेटाबेस के साथ टकरा न जाए जो आपके पास स्थानीय रूप से चल रहा हो।
कमांड जब यह काम करता है तो कुछ नहीं प्रिंट करता है। यह सही है। जब तक आपको कनेक्शन की आवश्यकता है तब तक टर्मिनल विंडो को खुला रखें, और इसे बंद करने के लिए Ctrl+C दबाएँ।
अपने क्लाइंट को कनेक्ट करना
टनल खुले के साथ, अपने डेटाबेस टूल को इस पर इंगित करें:
| सेटिंग | वैल्यू |
|---|---|
| होस्ट | 127.0.0.1 |
| पोर्ट | 3307 |
| उपयोगकर्ता नाम | डेटाबेस पृष्ठ से डेटाबेस उपयोगकर्ता नाम |
| पासवर्ड | डेटाबेस पृष्ठ से डेटाबेस पासवर्ड |
| डेटाबेस | आपका डेटाबेस नाम |
विभाजन पर ध्यान दें: SSH उपयोगकर्ता नाम आपके साइट का सिस्टम उपयोगकर्ता है, और डेटाबेस उपयोगकर्ता नाम डेटाबेस पृष्ठ से एक अलग है। इन दोनों को मिलाना यहाँ सबसे आम गलती है।
अधिकांश डेस्कटॉप क्लाइंट्स में "SSH टनल पर कनेक्ट करें" विकल्प भी है, जो एक अलग टर्मिनल के बिना बिल्कुल वही करता है। SSH होस्ट cp1-kapsule.kapsulehost.com, पोर्ट 22, अपना SSH उपयोगकर्ता नाम, और अपनी निजी कुंजी फाइल भरें, फिर ऊपर दिए गए डेटाबेस फील्ड।
डेटाबेस SSH टनल में क्लाइंट-दर-क्लाइंट सेटअप के लिए देखें।
सर्वर पर कमांड लाइन
यदि आप टर्मिनल में सहज हैं, तो आपको बिल्कुल भी टनल की आवश्यकता नहीं है। SSH पर कनेक्ट करें और सर्वर पर सीधे काम करें:
ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql
यह बड़े डेटाबेस को टनल के माध्यम से खींचने से बहुत तेज़ है, और यह एक जोखिमपूर्ण परिवर्तन से पहले एक मैनुअल डंप लेने का सही तरीका है। WordPress के लिए विशेष रूप से, WP-CLI आमतौर पर अभी भी बेहतर है।
समस्या निवारण
पोर्ट 3306 पर आपकी मशीन से "कनेक्शन अस्वीकार"। अपेक्षित। ऊपर देखें। एक टनल का उपयोग करें।
टनल कमांड पासवर्ड माँगता है। आपकी कुंजी की पेशकश नहीं की जा रही है या स्थापित नहीं है। जाँचें कि कुंजी SSH कुंजियों पृष्ठ पर है और कमांड में -i /path/to/your/private/key जोड़ें।
"अनुमति अस्वीकृत (publickey)"। गलत उपयोगकर्ता नाम, या गलत कुंजी। उपयोगकर्ता नाम SSH कुंजियों पृष्ठ पर एक है, आपके Kapsule लॉगिन ईमेल नहीं।
पोर्ट 3307 के लिए "पता पहले से ही उपयोग में है"। एक टनल पहले से ही खुला है, या कुछ और उस पोर्ट का उपयोग कर रहा है। दूसरे को बंद करें, या 3308 जैसे अलग-अलग स्थानीय पोर्ट उठाएँ।
टनल खुलता है लेकिन क्लाइंट कनेक्ट नहीं कर सकता। पुष्टि करें कि आपका क्लाइंट 127.0.0.1 और आपके चुने हुए स्थानीय पोर्ट पर इंगित है, आपके डोमेन पर नहीं।
उपयोगकर्ता के लिए "पहुंच अस्वीकृत"। डेटाबेस क्रेडेंशियल्स, SSH नहीं। डेटाबेस पृष्ठ से उन्हें फिर से प्रकट और कॉपी करें।
आयात पर "अज्ञात कोलेशन"। ऊपर कवर किया गया। संगत कोलेशन के साथ पुनः निर्यात करें।
जो कुछ आप डेटाबेस क्लाइंट में करते हैं, वह तुरंत होता है और पूर्ववत नहीं किया जा सकता। कोई पुष्टि कदम नहीं है और कोई रीसाइकल बिन नहीं है। कुछ भी चलाने से पहले एक बैकअप लें जो लिखता है। बैकअप लेना देखें।