# अपने डेटाबेस से रिमोटली कनेक्ट करना

Source: https://support.kapsulehost.com/hi-in/database-remote-access

अपने डेटाबेस के क्रेडेंशियल कहाँ मिलेंगे, पोर्ट 3306 पर सीधे रिमोट कनेक्शन क्यों अस्वीकार किए जाते हैं, और डेस्कटॉप टूल को SSH टनल के ज़रिए कैसे कनेक्ट करें।

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

## अपने क्रेडेंशियल खोजना

**वेबसाइटें** पर जाएं, साइट पर क्लिक करें, फिर **डेटाबेस** पर।

पेज पर पांच चीज़ें दिखती हैं:

| फ़ील्ड | मान |
|---|---|
| होस्ट | `127.0.0.1` |
| पोर्ट | `3306` |
| डेटाबेस | आपका डेटाबेस नाम |
| यूज़रनेम | आपका डेटाबेस यूज़र |
| पासवर्ड | छुपाया हुआ, एक रिवील बटन और एक कॉपी बटन के साथ |

पासवर्ड कोई एक-बार दिखने वाली चीज़ नहीं है। आप जब भी ज़रूरत हो वापस आकर इसे पढ़ सकते हैं, इसलिए इसे अलग से सहेजने की कोई आवश्यकता नहीं है।

डेटाबेस सर्वर MariaDB 10.11 है, जो MySQL-संगत है। यह एक व्यावहारिक तरीके से मायने रखता है: MySQL के हाल के संस्करण से निर्यात किया गया डंप ऐसे कोलेशन रख सकता है जिन्हें MariaDB पहचानता नहीं है, और आयात "unknown collation" त्रुटि के साथ विफल हो जाएगा। अगर ऐसा होता है, तो `utf8mb4_unicode_ci` जैसे व्यापक रूप से संगत कोलेशन का उपयोग करके दोबारा निर्यात करें, या आयात करने से पहले डंप फ़ाइल में इसे खोजकर बदल दें।

![KPanel में किसी साइट का Database टैब, जिसमें डेटाबेस कनेक्शन विवरण दिखाया गया है](https://support.kapsulehost.com/help/screenshots/database-remote-access.84df4ba6.webp)

## होस्ट 127.0.0.1 क्यों है

`127.0.0.1` का मतलब है "यह मशीन"। डेटाबेस सर्वर केवल मशीन के अपने आंतरिक इंटरफ़ेस पर सुनता है, और फ़ायरवॉल पर पोर्ट 3306 भी इंटरनेट के लिए खुला नहीं है। पैनल में इसे खोलने के लिए कोई सेटिंग नहीं है, और इसके लिए कोई IP allowlist भी नहीं है।

यह कोई चूक नहीं है। इंटरनेट-फेसिंग डेटाबेस पोर्ट होस्टिंग में सबसे भरोसेमंद ढंग से शोषण की जाने वाली चीज़ों में से एक है: इसे लगातार स्कैन किया जाता है, यह कनेक्ट करने वाले किसी भी व्यक्ति को वर्ज़न की जानकारी लीक करता है, और एक भी कमज़ोर पासवर्ड से आपकी पूरी साइट हाथ से निकल जाती है। इसे बंद रखने से जोखिम की यह पूरी श्रेणी ही समाप्त हो जाती है।

इसलिए आपकी साइट के पब्लिक IP पते और पोर्ट 3306 का उपयोग करने वाला कनेक्शन स्ट्रिंग हर जगह से, हर प्लान पर, हमेशा विफल होगा। इसके बजाय प्रवेश के दो समर्थित तरीके हैं।

## विकल्प 1: ब्राउज़र में phpMyAdmin

त्वरित नज़र डालने, कोई संपादन करने, या छोटा आयात या निर्यात करने के लिए सबसे आसान।

Database पेज पर, **phpMyAdmin खोलें** पर क्लिक करें। आप सीधे अपनी साइट के अपने क्रेडेंशियल के साथ साइन इन कर दिए जाते हैं और आपको केवल अपने ही डेटाबेस दिखते हैं।

ऐसा करने वाला लिंक जानबूझकर कम समय के लिए मान्य रहता है, और यह ऐसे तरीकों से विफल होता है जो त्रुटियों जैसे दिखते हैं लेकिन हैं नहीं:

- **यह 60 सेकंड में समाप्त हो जाता है।** इसके दिखते ही इस पर क्लिक करें।
- **यह एक बार काम करता है।** वापस जाकर दोबारा लोड करना काम नहीं करेगा; एक नया लिंक बनाएं।
- **इसे उसी ब्राउज़र और उसी नेटवर्क से खोला जाना चाहिए** जिससे आपने इसका अनुरोध किया था। अगर आप लिंक को किसी अन्य डिवाइस पर कॉपी करते हैं, या बीच में आपका कनेक्शन पता बदल जाता है, तो इसे अस्वीकार कर दिया जाता है।

अगर आपको "This link has already been used" या IP mismatch के बारे में कोई संदेश दिखे, तो यह सुरक्षा काम कर रही है। Database पेज पर वापस जाएं और बटन पर फिर से क्लिक करें।

phpMyAdmin के साथ काम करने के बारे में, [phpMyAdmin का उपयोग करना](https://support.kapsulehost.com/hi-in/sites-phpmyadmin) देखें।

## विकल्प 2: डेस्कटॉप टूल के लिए SSH टनल

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

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

साइट पर एक SSH कुंजी। पासवर्ड प्रमाणीकरण स्वीकार नहीं किया जाता, इसलिए यह चरण वैकल्पिक नहीं है।

1. **वेबसाइटें**, साइट, **सेटिंग्स**, फिर **SSH कुंजियां** पर जाएं।
2. या तो वह सार्वजनिक कुंजी पेस्ट करें जिसका आप पहले से उपयोग करते हैं, या पैनल से एक नई कुंजी जोड़ी जनरेट करें।
3. उस पेज पर दिखाए गए यूज़रनेम को नोट करें। यह आपकी साइट का सिस्टम यूज़र है, और आप इसी रूप में कनेक्ट करते हैं।

अगर आप पैनल में कोई कुंजी जनरेट करते हैं, तो **निजी कुंजी केवल एक बार दिखाई जाती है और फिर कभी नहीं**। इसे तुरंत सहेज लें, और इसे ऐसी जगह रखें जहाँ केवल आप ही इसे पढ़ सकें।

जब भी आपकी साइट में कोई कुंजी जोड़ी जाती है तो आपको एक ईमेल भी मिलेगा। यह जानबूझकर किया गया है। अगर कोई ईमेल आता है और यह आपने नहीं किया था, तो उसी पेज से तुरंत उसे रद्द करें और [अगर आपकी साइट हैक हो जाए](https://support.kapsulehost.com/hi-in/site-hacked-what-to-do) पढ़ें।

पूरी प्रक्रिया के लिए [SSH कुंजियां जोड़ना](https://support.kapsulehost.com/hi-in/adding-ssh-keys) देखें।

> **Warning:** SFTP टैब पर बनाया गया SFTP खाता टनल के लिए काम नहीं करेगा। ये खाते केवल फ़ाइल स्थानांतरण के लिए हैं, जिनमें न कोई शेल है और न ही पोर्ट फॉरवर्डिंग। टनलिंग के लिए साइट के अपने SSH यूज़र को एक कुंजी के साथ चाहिए होता है। [SFTP पहुंच](https://support.kapsulehost.com/hi-in/sftp-access) देखें।

### टनल खोलना

अपनी मशीन पर एक टर्मिनल से:

```sh
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 की ओर फॉरवर्ड करता है।
- 3306 के बजाय पोर्ट 3307 का उपयोग इसलिए किया जाता है ताकि यह उस डेटाबेस से न टकराए जो आप स्थानीय रूप से चला रहे हों।

जब यह सही से काम करता है तो कमांड कुछ भी प्रिंट नहीं करती। यह सही है। जब तक आपको कनेक्शन की ज़रूरत है तब तक टर्मिनल विंडो को खुला छोड़ दें, और इसे बंद करने के लिए Ctrl+C दबाएं।

### अपने क्लाइंट को कनेक्ट करना

टनल खुला होने पर, अपने डेटाबेस टूल को इन पर इंगित करें:

| सेटिंग | मान |
|---|---|
| होस्ट | `127.0.0.1` |
| पोर्ट | `3307` |
| यूज़रनेम | Database पेज से डेटाबेस यूज़रनेम |
| पासवर्ड | Database पेज से डेटाबेस पासवर्ड |
| डेटाबेस | आपका डेटाबेस नाम |

यह विभाजन ध्यान दें: **SSH** यूज़रनेम आपकी साइट का सिस्टम यूज़र है, और **डेटाबेस** यूज़रनेम Database पेज से एक अलग यूज़रनेम है। इन दोनों को मिला देना यहाँ की सबसे आम गलती है।

अधिकतर डेस्कटॉप क्लाइंट में एक अंतर्निहित "connect over SSH tunnel" विकल्प भी होता है, जो बिना किसी अलग टर्मिनल के ठीक ऊपर जैसा ही करता है। SSH होस्ट `cp1-kapsule.kapsulehost.com`, पोर्ट 22, अपना SSH यूज़रनेम, और अपनी निजी कुंजी फ़ाइल भरें, फिर ऊपर दिए गए अनुसार डेटाबेस फ़ील्ड भरें।

क्लाइंट-दर-क्लाइंट सेटअप के लिए [डेटाबेस SSH टनल](https://support.kapsulehost.com/hi-in/database-ssh-tunnel) देखें।

## सर्वर पर कमांड लाइन

अगर आप टर्मिनल में सहज हैं, तो आपको टनल की बिल्कुल भी ज़रूरत नहीं है। SSH के ज़रिए कनेक्ट करें और सीधे सर्वर पर काम करें:

```sh
ssh your-ssh-user@cp1-kapsule.kapsulehost.com
mysqldump -u DBUSER -p DBNAME > backup.sql
```

टनल के ज़रिए बड़ा डेटाबेस खींचने की तुलना में यह कहीं ज़्यादा तेज़ है, और किसी जोखिम भरे बदलाव से पहले मैनुअल डंप लेने का यह सही तरीका है। खासतौर पर WordPress के लिए, [WP-CLI](https://support.kapsulehost.com/hi-in/wordpress-wp-cli) आमतौर पर और भी बेहतर है।

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

**अपनी ही मशीन से पोर्ट 3306 पर "Connection refused"।** अपेक्षित है। ऊपर देखें। टनल का उपयोग करें।

**टनल कमांड पासवर्ड मांगता है।** आपकी कुंजी पेश नहीं की जा रही है या इंस्टॉल नहीं है। जांचें कि कुंजी SSH कुंजियां पेज पर है और कमांड में `-i /path/to/your/private/key` जोड़ें।

**"Permission denied (publickey)"।** गलत यूज़रनेम, या गलत कुंजी। यूज़रनेम वही है जो SSH कुंजियां पेज पर है, न कि आपका KapsuleHost लॉगिन ईमेल।

**पोर्ट 3307 के लिए "Address already in use"।** कोई टनल पहले से खुला है, या कुछ और उस पोर्ट का उपयोग कर रहा है। दूसरे को बंद करें, या 3308 जैसा कोई अलग स्थानीय पोर्ट चुनें।

**टनल खुलता है लेकिन क्लाइंट कनेक्ट नहीं हो पाता।** पुष्टि करें कि आपका क्लाइंट `127.0.0.1` और आपके चुने हुए स्थानीय पोर्ट की ओर इंगित है, न कि आपके डोमेन की ओर।

**"Access denied for user"।** डेटाबेस क्रेडेंशियल, SSH नहीं। Database पेज से उन्हें फिर से रिवील करें और कॉपी करें।

**आयात पर "Unknown collation"।** ऊपर कवर किया जा चुका है। संगत कोलेशन के साथ दोबारा निर्यात करें।

> **Important:** आप डेटाबेस क्लाइंट में जो कुछ भी करते हैं वह तुरंत होता है और इसे वापस नहीं लिया जा सकता। इसमें कोई पुष्टिकरण चरण नहीं है और कोई रीसायकल बिन नहीं है। कुछ भी लिखने वाली कार्रवाई चलाने से पहले बैकअप लें। [बैकअप लेना](https://support.kapsulehost.com/hi-in/taking-a-backup) देखें।

## संबंधित गाइड

- [phpMyAdmin का उपयोग करना](https://support.kapsulehost.com/hi-in/sites-phpmyadmin)
- [डेटाबेस SSH टनल](https://support.kapsulehost.com/hi-in/database-ssh-tunnel)
- [SSH कुंजियां जोड़ना](https://support.kapsulehost.com/hi-in/adding-ssh-keys)
- [SFTP पहुंच](https://support.kapsulehost.com/hi-in/sftp-access)
- [बैकअप लेना](https://support.kapsulehost.com/hi-in/taking-a-backup)
- [Websites](https://support.kapsulehost.com/hi-in/sites-overview)
- [होस्टिंग शब्दावली](https://support.kapsulehost.com/hi-in/glossary)
