MariaDB के बारे में
MariaDB एक ओपन सोर्स रिलेशनल डेटाबेस सर्वर है, जो MySQL के फ़ोर्क से बना है। MySQL के लिए लिखी गई ज़्यादातर एप्लिकेशन इसके साथ चलती हैं (WordPress, Nextcloud, Laravel, Django, Matomo और कई अन्य), और इसे मानक SQL से चलाया जाता है।
डिलीवरी के समय mariadb-server पैकेज आपकी डिस्ट्रीब्यूशन (Debian 12, Debian 13, Ubuntu 20.04, 22.04 या 24.04) के रिपॉजिटरी से इंस्टॉल होता है। mariadb सर्विस enable और start की जाती है, इसलिए रीबूट के बाद वह अपने-आप फिर चल पड़ती है। सटीक वर्शन आपकी चुनी हुई डिस्ट्रीब्यूशन पर निर्भर करता है।
डिफ़ॉल्ट रूप से MariaDB सिर्फ़ 127.0.0.1:3306 पर सुनता है। इंटरनेट पर कुछ भी खुला नहीं है। यह एक अच्छी शुरुआत है, ख़ासकर उन एप्लिकेशन के लिए जो उसी VPS पर चलती हैं। लोकल root के रूप में आप sudo mariadb से कनेक्ट होते हैं।
MariaDB के साथ आप क्या कर सकते हैं
आधिकारिक रिपॉजिटरी से इंस्टॉल
पैकेज डिस्ट्रीब्यूशन के रिपॉजिटरी से आता है, इसलिए सिस्टम के बाकी हिस्सों की तरह सुरक्षा अपडेट भी
aptसे मिलते हैं।बूट पर अपने-आप चालू सर्विस
mariadbसर्विसsystemctl enable --nowसे शुरू की जाती है। यह डिलीवरी के साथ ही चालू मिलती है और VPS के हर रीस्टार्ट के बाद फिर शुरू हो जाती है।सिर्फ़ localhost पर सुनता है
पोर्ट 3306 केवल सर्वर के भीतर से (127.0.0.1) पहुँचा जा सकता है। जब तक आप खुद तय न करें, आपका डेटाबेस बाहर से दिखाई नहीं देता।
कमांड लाइन क्लाइंट
sudo mariadbकमांड लोकल root के रूप में SQL सेशन खोलती है। कोई पासवर्ड ढूँढने की ज़रूरत नहीं, और आप तुरंत डेटाबेस और यूज़र बना सकते हैं।MySQL के साथ संगत
आम MySQL कनेक्टर और टूल MariaDB के साथ चलते हैं। मौजूदा एप्लिकेशन को माइग्रेट करने में आमतौर पर बहुत कम बदलाव लगते हैं।
ट्रांज़ैक्शनल InnoDB इंजन
ACID ट्रांज़ैक्शन, फ़ॉरेन की और रो-लेवल लॉकिंग, उन वेब एप्लिकेशन, API और आंतरिक टूल के लिए जो बहुत लिखते हैं।
MariaDB के साथ शुरुआत करें
ऑर्डर से प्रोडक्शन तक कुछ ही मिनटों में।
- 1
MariaDB के साथ VPS ऑर्डर करें
पेरिस या फ्रैंकफ़र्ट में Linux VPS चुनें, Debian या Ubuntu सेलेक्ट करें, फिर ऑर्डर फ़ॉर्म के Applications टैब में MariaDB पर टिक करें।
- 2
डिलीवर हुए सर्वर से कनेक्ट करें
VPS डिलीवर होने के बाद मिले एक्सेस से SSH के ज़रिए कनेक्ट करें, फिर लोकल root के रूप में MariaDB क्लाइंट खोलें। इंस्टॉलेशन पूरा होने का संदेश भी यही कमांड बताता है।
Bashssh USER@SERVER_IP sudo mariadb - 3
डेटाबेस और यूज़र बनाएँ
अपनी एप्लिकेशन में root का उपयोग न करें। एक अलग डेटाबेस बनाएँ और ऐसा यूज़र बनाएँ जिसकी पहुँच सिर्फ़ उसी डेटाबेस तक हो, साथ में लंबा और अनूठा पासवर्ड रखें।
Bashsudo mariadb -e "CREATE DATABASE app_db CHARACTER SET utf8mb4; CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD'; GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost'; FLUSH PRIVILEGES;" - 4
प्रोडक्शन के लिए सुरक्षित करें
हार्डनिंग असिस्टेंट चलाएँ (Ubuntu 20.04 पर mysql_secure_installation), फ़ायरवॉल में पोर्ट 3306 बंद रखें और नियमित बैकअप शेड्यूल करें। रिमोट एक्सेस चाहिए तो SSH टनल इस्तेमाल करें।
Bashsudo mariadb-secure-installation sudo mariadb-dump --all-databases > backup.sql
MariaDB के उपयोग
वेबसाइट या CMS का डेटाबेस
उसी VPS पर WordPress, Nextcloud या कोई Laravel एप्लिकेशन इंस्टॉल करें और उन्हें
localhostकी ओर इंगित करें। डेटाबेस निजी रहता है और कोई पोर्ट खुला नहीं होता।API और एप्लिकेशन का बैकएंड
Node.js, Python या PHP एप्लिकेशन का डेटाबेस टेबल, इंडेक्स और ट्रांज़ैक्शन के साथ ऐसे सर्वर पर चलाएँ जिस पर पूरा नियंत्रण आपका हो।
डेवलपमेंट या टेस्ट एनवायरनमेंट
असली डेटा को छूने से पहले प्रोडक्शन डेटाबेस की प्रति बनाकर स्कीमा माइग्रेशन या वर्शन अपग्रेड को आज़माएँ।
व्यावसायिक डेटा का भंडारण
रिपोर्टिंग, ऑर्डर ट्रैकिंग या आंतरिक टूल का डेटा एक SQL डेटाबेस में रखें, और
mariadb-dumpसे नियमित एक्सपोर्ट लेते रहें।
MariaDB से जुड़े सामान्य प्रश्न
नहीं। इंस्टॉलेशन रेसिपी के अनुसार MariaDB सिर्फ़ 127.0.0.1:3306 पर सुनता है। इसे केवल सर्वर की एप्लिकेशन और आपका SSH सेशन ही पहुँच सकते हैं। अपने कंप्यूटर से एक्सेस के लिए SSH टनल का उपयोग करें।
MariaDB के बारे में और जानें
localhost तक सीमित रखें या एक्सेस खोलें
अगर आपकी एप्लिकेशन उसी VPS पर चलती है, तो कुछ न बदलें: 127.0.0.1 पर सुनना सबसे सुरक्षित सेटिंग है। अपने कंप्यूटर से डेटाबेस सँभालने के लिए (DBeaver, HeidiSQL या कमांड लाइन क्लाइंट), सार्वजनिक पोर्ट खोलने के बजाय SSH टनल का उपयोग करें:
ssh -L 3306:127.0.0.1:3306 USER@SERVER_IP
इसके बाद आप अपनी मशीन पर 127.0.0.1:3306 से कनेक्ट होते हैं। अगर रिमोट कनेक्शन सचमुच ज़रूरी हों, तो सर्वर का bind-address पैरामीटर बदलें, किसी तय IP से बँधे यूज़र बनाएँ और फ़ायरवॉल में पोर्ट 3306 को उसी IP तक सीमित करें।
बैकअप
ज़्यादातर छोटे डेटाबेस के लिए लॉजिकल डंप काफ़ी है। पुराने वर्शन (Ubuntu 20.04) पर इस कमांड का नाम mysqldump है।
sudo mariadb-dump --single-transaction --all-databases | gzip > /root/backup-$(date +%F).sql.gz
इसे cron से शेड्यूल करें, फिर आर्काइव को सर्वर के बाहर कॉपी करें। जो बैकअप उसी डिस्क पर रहता है, वह VPS की खराबी से नहीं बचाता। समय-समय पर रिस्टोर करके भी देखें।
RAM के हिसाब से कॉन्फ़िगरेशन
डिफ़ॉल्ट सेटिंग सावधानी भरी होती हैं। जिस VPS पर सिर्फ़ डेटाबेस चलता है, वहाँ सबसे अहम पैरामीटर innodb_buffer_pool_size है, जो तय करता है कि कितना डेटा मेमोरी में रखा जाए। RAM का 50 से 70 % एक आम शुरुआती मान है। आगे बढ़ने से पहले मेमोरी उपयोग पर नज़र रखें। और ट्यूटोरियल के लिए /learn सेक्शन देखें।