- 1 Ubuntu पर MariaDB स्थापित करने का सबसे तेज़ तरीका (20.04 / 22.04 / 24.04 समर्थित)
- 1.1 ① पैकेज जानकारी अपडेट करें
- 1.2 ② MariaDB स्थापित करें
- 1.3 ③ सत्यापित करें कि MariaDB चल रहा है
- 1.4 ④ ऑटो-स्टार्ट सक्षम करें (आमतौर पर आवश्यक नहीं लेकिन पुष्टि के लिए अनुशंसित)
- 1.5 ⑤ MariaDB से कनेक्ट करें और संचालन सत्यापित करें
- 1.6 स्थापना के बाद अनिवार्य सुरक्षा प्रारंभिककरण
- 1.7 Ubuntu संस्करण द्वारा स्थापित MariaDB संस्करण
- 1.8 यदि स्थापना विफल हो या सेवा शुरू न हो तो त्वरित जांच
- 2 आपके Ubuntu संस्करण के लिए सही MariaDB संस्करण चुनना
- 3 यदि आपको नवीनतम संस्करण चाहिए (आधिकारिक MariaDB रिपॉजिटरी जोड़ें)
- 4 वर्तमान में स्थापित MariaDB संस्करण कैसे जांचें
- 5 प्रारंभिक MariaDB सुरक्षा सेटअप (mysql_secure_installation) के लिए पूर्ण गाइड
- 6 आप root के रूप में लॉग इन क्यों नहीं कर सकते (Access Denied त्रुटि)
- 7 root को पासवर्ड प्रमाणीकरण में कैसे बदलें (केवल आवश्यक होने पर)
- 8 वर्तमान प्रमाणीकरण विधि कैसे जांचें
- 9 सामान्य त्रुटियाँ और समाधान
- 10 utf8mb4 में कैरेक्टर एन्कोडिंग सेट करें (गड़बड़ टेक्स्ट से बचें)
- 11 डेटाबेस बनाते समय utf8mb4 निर्दिष्ट करें (सिफारिशित)
- 12 एक एप्लिकेशन उपयोगकर्ता बनाएं और अनुमतियाँ दें
- 13 रिमोट एक्सेस उपयोगकर्ता बनाएं (केवल आवश्यक होने पर)
- 14 वर्तमान उपयोगकर्ताओं और विशेषाधिकारों की जाँच कैसे करें
- 15 सामान्य अनुमति त्रुटियां और समाधान
- 16 MariaDB में रिमोट कनेक्शन कैसे अनुमति दें (बाहरी एक्सेस विफल होने पर समाधान)
- 17 यदि आप बाहरी रूप से कनेक्ट नहीं कर पा रहे हैं तो चेकलिस्ट
- 18 महत्वपूर्ण सुरक्षा नोट्स
- 19 जब MariaDB शुरू नहीं हो पाता है तो ट्रबलशूटिंग (विफल त्रुटि)
- 20 एक्सेस अस्वीकृत त्रुटि कारणों का सारांश
- 21 बुनियादी प्रदर्शन सुधार (शुरुआती के लिए)
- 22 अक्सर पूछे जाने वाले प्रश्न (FAQ)
- 23 निष्कर्ष: Ubuntu पर MariaDB का सुरक्षित उपयोग
Ubuntu पर MariaDB स्थापित करने का सबसे तेज़ तरीका (20.04 / 22.04 / 24.04 समर्थित)
यदि आप Ubuntu पर तुरंत MariaDB का उपयोग शुरू करना चाहते हैं, तो बस नीचे दिए गए चरणों का पालन करके स्थापना और स्टार्टअप सत्यापन पूरा करें। जब तक आपके पास कोई विशेष कारण न हो, Ubuntu के डिफ़ॉल्ट रिपॉजिटरी से इंस्टॉल करना सबसे सुरक्षित और स्थिर विकल्प है।
① पैकेज जानकारी अपडेट करें
sudo apt update
sudo apt upgrade -y
② MariaDB स्थापित करें
sudo apt install -y mariadb-server mariadb-client
स्थापना के दौरान कोई विशेष कॉन्फ़िगरेशन आवश्यक नहीं है। पूर्ण होने के बाद, MariaDB सेवा स्वचालित रूप से शुरू हो जाएगी।
③ सत्यापित करें कि MariaDB चल रहा है
sudo systemctl status mariadb
यदि active (running) प्रदर्शित होता है, तो MariaDB सही ढंग से चल रहा है।
④ ऑटो-स्टार्ट सक्षम करें (आमतौर पर आवश्यक नहीं लेकिन पुष्टि के लिए अनुशंसित)
sudo systemctl enable mariadb
⑤ MariaDB से कनेक्ट करें और संचालन सत्यापित करें
sudo mysql
यदि आप निम्नलिखित प्रॉम्प्ट देखते हैं, तो स्थापना सफल रही है:
MariaDB [(none)]>
बाहर निकलने के लिए, exit; टाइप करें।
स्थापना के बाद अनिवार्य सुरक्षा प्रारंभिककरण
स्थापना के तुरंत बाद, MariaDB में केवल न्यूनतम सुरक्षा सेटिंग्स लागू होती हैं। सुनिश्चित करें कि आप निम्नलिखित कमांड चलाएँ:
sudo mysql_secure_installation
आमतौर पर, निम्नलिखित उत्तर अनुशंसित हैं:
- गुमनाम उपयोगकर्ताओं को हटाएँ → Y
- रूट लॉगिन को रिमोटली निषिद्ध करें → Y
- टेस्ट डेटाबेस हटाएँ → Y
- प्रिविलेज टेबल्स को रीलोड करें → Y
यह Ubuntu पर एक सुरक्षित MariaDB वातावरण की सेटअप को पूरा करता है।
Ubuntu संस्करण द्वारा स्थापित MariaDB संस्करण
- Ubuntu 20.04 → MariaDB 10.3 श्रृंखला
- Ubuntu 22.04 → MariaDB 10.6 श्रृंखला
- Ubuntu 24.04 → MariaDB 10.11 श्रृंखला (LTS)
अधिकांश उपयोगकर्ताओं के लिए, Ubuntu का डिफ़ॉल्ट संस्करण पर्याप्त है। केवल तभी आधिकारिक रिपॉजिटरी पर विचार करें जब आपको नवीनतम सुविधाओं की आवश्यकता हो।
यदि स्थापना विफल हो या सेवा शुरू न हो तो त्वरित जांच
sudo systemctl status mariadbके साथ त्रुटियों की जाँच करेंsudo journalctl -xeके साथ विस्तृत लॉग देखेंdf -hके साथ डिस्क स्पेस जाँचें
अधिकांश मामलों में, समस्या या तो अपर्याप्त डिस्क स्पेस या कॉन्फ़िगरेशन फ़ाइल में टाइपो होती है।
आपके Ubuntu संस्करण के लिए सही MariaDB संस्करण चुनना
Ubuntu पर MariaDB का उपयोग करते समय, अधिकांश मामलों में सबसे सुरक्षित विकल्प डिफ़ॉल्ट रिपॉजिटरी संस्करण है। सुरक्षा अपडेट और निर्भरता संगतता स्वचालित रूप से बनाए रखी जाती है, जिससे यह शुरुआती और मध्यवर्ती उपयोगकर्ताओं के लिए आदर्श है।
Ubuntu डिफ़ॉल्ट रिपॉजिटरी संस्करण (सिफ़ारिश किया गया)
- Ubuntu 20.04 → MariaDB 10.3 श्रृंखला
- Ubuntu 22.04 → MariaDB 10.6 श्रृंखला
- Ubuntu 24.04 → MariaDB 10.11 श्रृंखला (LTS)
जब तक आपके पास कोई विशिष्ट आवश्यकता न हो, ये संस्करण उत्पादन उपयोग के लिए पूरी तरह व्यावहारिक हैं।
यदि आपको नवीनतम संस्करण चाहिए (आधिकारिक MariaDB रिपॉजिटरी जोड़ें)
यदि आपको नवीनतम सुविधाओं की आवश्यकता है, तो आप आधिकारिक MariaDB रिपॉजिटरी जोड़ सकते हैं। चूँकि apt-key को अप्रचलित कर दिया गया है, यह signed‑by विधि का उपयोग करता है।
① GPG कुंजी सहेजें
sudo mkdir -p /etc/apt/keyrings
sudo curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc \
| sudo gpg --dearmor -o /etc/apt/keyrings/mariadb.gpg
② अपने Ubuntu कोडनेम की जाँच करें
lsb_release -cs
उदाहरण:
- 20.04 →
focal - 22.04 →
jammy - 24.04 →
noble
③ आधिकारिक रिपॉजिटरी जोड़ें (उदाहरण: 10.11 श्रृंखला)
echo "deb [signed-by=/etc/apt/keyrings/mariadb.gpg] \
https://mirror.mariadb.org/repo/10.11/ubuntu \
$(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/mariadb.list
④ पैकेज अपडेट करें और स्थापित करें
sudo apt update
sudo apt install mariadb-server mariadb-client
आधिकारिक रिपॉजिटरी का उपयोग करते समय नोट्स
- आप Ubuntu डिफ़ॉल्ट संस्करण से नई सुविधाओं का उपयोग कर सकते हैं
- भविष्य में निर्भरता टकराव का जोखिम हो सकता है
- उत्पादन सर्वरों के लिए व्यापक परीक्षण आवश्यक है
उत्पादन के लिए, स्पष्ट रूप से तय करें कि आप स्थिरता को प्राथमिकता देते हैं या नवीनतम सुविधाओं को।
वर्तमान में स्थापित MariaDB संस्करण कैसे जांचें
mysql --version
उदाहरण:
mysql Ver 15.1 Distrib 10.6.16-MariaDB
संस्करण को स्पष्ट रूप से पुष्टि करके, समस्या निवारण और माइग्रेशन कार्य बहुत आसान हो जाता है।
प्रारंभिक MariaDB सुरक्षा सेटअप (mysql_secure_installation) के लिए पूर्ण गाइड
MariaDB स्थापित करने के तुरंत बाद, केवल न्यूनतम सुरक्षा सेटिंग्स लागू होती हैं। सुरक्षित रूप से संचालन करने के लिए, नीचे दिया गया कमांड चलाना सुनिश्चित करें:
sudo mysql_secure_installation
चलाने पर कई प्रॉम्प्ट दिखाई देंगे। अधिकांश मामलों में, निम्नलिखित उत्तरों की सिफारिश की जाती है।
सिफारिश किए गए उत्तर
- root के लिए वर्तमान पासवर्ड दर्ज करें: → एंटर दबाएँ (पहली बार चलाने पर सेट नहीं है)
- unix_socket प्रमाणीकरण पर स्विच करें? → Y (Ubuntu पर अनुशंसित)
- root पासवर्ड बदलें? → N (यदि unix_socket प्रमाणीकरण उपयोग कर रहे हैं)
- अनाम उपयोगकर्ताओं को हटाएँ? → Y
- root का रिमोट लॉगिन निषिद्ध करें? → Y
- टेस्ट डेटाबेस और उसकी पहुँच हटाएँ? → Y
- प्रिविलेज टेबल्स को अभी रीलोड करें? → Y
यह बुनियादी सुरक्षा कॉन्फ़िगरेशन पूर्ण करता है।
आप root के रूप में लॉग इन क्यों नहीं कर सकते (Access Denied त्रुटि)
Ubuntu में, root उपयोगकर्ता डिफ़ॉल्ट रूप से unix_socket authentication का उपयोग करता है। इसलिए, मानक पासवर्ड‑आधारित लॉगिन काम नहीं करेगा।
उदाहरण लक्षण
mysql -u root -p
→ Access denied for user 'root'@'localhost'
सही लॉगिन विधि (Ubuntu डिफ़ॉल्ट)
sudo mysql
यह सबसे सुरक्षित और अनुशंसित विधि है।
root को पासवर्ड प्रमाणीकरण में कैसे बदलें (केवल आवश्यक होने पर)
केवल तभी प्रमाणीकरण विधि बदलें जब आपको बाहरी टूल या एप्लिकेशन से root के रूप में कनेक्ट करना पड़े।
① MariaDB से कनेक्ट करें
sudo mysql
② प्रमाणीकरण प्लगइन बदलें
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'StrongPasswordHere';
FLUSH PRIVILEGES;
③ परिवर्तन की पुष्टि करें
SELECT user, host, plugin FROM mysql.user;
यदि mysql_native_password प्रदर्शित होता है, तो परिवर्तन सफल रहा।
वर्तमान प्रमाणीकरण विधि कैसे जांचें
sudo mysql -e "SELECT user, host, plugin FROM mysql.user;"
मुख्य प्रमाणीकरण विधियाँ:
- unix_socket → Ubuntu डिफ़ॉल्ट, सुरक्षित
- mysql_native_password → पासवर्ड‑आधारित प्रमाणीकरण
जब तक कोई विशेष कारण न हो, root को unix_socket authentication पर रखना सबसे सुरक्षित है।
सामान्य त्रुटियाँ और समाधान
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
- कारण: पासवर्ड‑आधारित लॉगिन का प्रयास
- समाधान:
sudo mysqlका उपयोग करके लॉगिन करें
mysql_secure_installation नहीं मिला
which mysql_secure_installationसे जाँचें- यदि स्थापित नहीं है, तो
sudo apt install mariadb-serverचलाएँ
utf8mb4 में कैरेक्टर एन्कोडिंग सेट करें (गड़बड़ टेक्स्ट से बचें)
बहुभाषी टेक्स्ट और इमोजी को सुरक्षित रूप से संभालने के लिए MariaDB में utf8mb4 का उपयोग करने की सलाह दी जाती है। इस सेटिंग के बिना, एन्कोडिंग समस्याएँ या डेटा हानि हो सकती है।
① कॉन्फ़िगरेशन फ़ाइल संपादित करें
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld] सेक्शन में निम्नलिखित पंक्तियों को जोड़ें या संशोधित करें:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
② MariaDB को पुनः आरंभ करें
sudo systemctl restart mariadb
③ सेटिंग्स की पुष्टि करें
sudo mysql -e "SHOW VARIABLES LIKE 'character_set%';"
यदि utf8mb4 प्रदर्शित होता है, तो कॉन्फ़िगरेशन सफल रहा।
डेटाबेस बनाते समय utf8mb4 निर्दिष्ट करें (सिफारिशित)
यदि आप वैश्विक सेटिंग्स की परवाह किए बिना स्पष्ट रूप से कैरेक्टर सेट परिभाषित करना चाहते हैं, तो डेटाबेस निर्माण के समय इसे निर्दिष्ट करें।
CREATE DATABASE sample_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
इस डेटाबेस के भीतर बनाए गए सभी टेबल्स utf8mb4 को विरासत में प्राप्त करेंगे।
एक एप्लिकेशन उपयोगकर्ता बनाएं और अनुमतियाँ दें
प्रोडक्शन वातावरण में, एप्लिकेशन कनेक्शन के लिए कभी भी root उपयोगकर्ता का उपयोग न करें। एक समर्पित उपयोगकर्ता बनाएं और केवल न्यूनतम आवश्यक विशेषाधिकार प्रदान करें।
① MariaDB में लॉग इन करें
sudo mysql
② उपयोगकर्ता बनाएं (स्थानीय कनेक्शन)
CREATE USER 'app_user'@'localhost'
IDENTIFIED BY 'StrongPasswordHere';
③ डेटाबेस विशेषाधिकार प्रदान करें
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
रिमोट एक्सेस उपयोगकर्ता बनाएं (केवल आवश्यक होने पर)
इसे केवल तभी कॉन्फ़िगर करें जब आपको बाहरी सर्वर या क्लाउड वातावरण से कनेक्ट करने की आवश्यकता हो।
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
नोट: \”%\” वाइल्डकार्ड किसी भी होस्ट से कनेक्शन की अनुमति देता है। उत्पादन वातावरण में, एक विशिष्ट IP पता निर्दिष्ट करना अधिक सुरक्षित है।
वर्तमान उपयोगकर्ताओं और विशेषाधिकारों की जाँच कैसे करें
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'app_user'@'localhost';
सामान्य अनुमति त्रुटियां और समाधान
उपयोगकर्ता ‘app_user’ के लिए एक्सेस अस्वीकृत
- गलत होस्ट विनिर्देशन (localhost और % के बीच अंतर)
- FLUSH PRIVILEGES निष्पादित नहीं किया गया
- कनेक्शन के दौरान गलत डेटाबेस नाम
अज्ञात डेटाबेस
- डेटाबेस नाम में टाइपो
- लक्षित डेटाबेस के लिए कोई विशेषाधिकार नहीं दिया गया
MariaDB में रिमोट कनेक्शन कैसे अनुमति दें (बाहरी एक्सेस विफल होने पर समाधान)
डिफ़ॉल्ट रूप से, MariaDB केवल स्थानीय कनेक्शन की अनुमति देता है। यदि आपको बाहरी सर्वर या क्लाउड वातावरण से कनेक्ट करने की आवश्यकता है, तो निम्न सेटिंग्स कॉन्फ़िगर करें।
① बाइंड-एड्रेस बदलें
कॉन्फ़िगरेशन फ़ाइल संपादित करें:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
निम्न पंक्ति खोजें:
bind-address = 127.0.0.1
बाहरी कनेक्शन की अनुमति देने के लिए, इसे इस प्रकार बदलें:
bind-address = 0.0.0.0
सहेजने के बाद, MariaDB को पुनः आरंभ करें:
sudo systemctl restart mariadb
② फ़ायरवॉल में पोर्ट 3306 खोलें
यदि आप Ubuntu पर UFW का उपयोग कर रहे हैं:
sudo ufw allow 3306
sudo ufw reload
बेहतर सुरक्षा के लिए, स्रोत IP पता निर्दिष्ट करें:
sudo ufw allow from 192.168.1.10 to any port 3306
③ रिमोट एक्सेस उपयोगकर्ता बनाएं
CREATE USER 'app_user'@'%'
IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES
ON sample_db.*
TO 'app_user'@'%';
FLUSH PRIVILEGES;
बेहतर सुरक्षा के लिए:
CREATE USER 'app_user'@'192.168.1.10'
IDENTIFIED BY 'StrongPasswordHere';
यदि आप बाहरी रूप से कनेक्ट नहीं कर पा रहे हैं तो चेकलिस्ट
1. क्या MariaDB चल रहा है?
sudo systemctl status mariadb
2. क्या पोर्ट 3306 सुन रहा है?
sudo ss -tulnp | grep 3306
यदि यह 0.0.0.0:3306 दिखाता है, तो यह सभी इंटरफ़ेस पर सही ढंग से सुन रहा है।
3. यदि क्लाउड वातावरण (AWS / GCP / VPS) का उपयोग कर रहे हैं
- सुरक्षा समूह में पोर्ट 3306 खुला है यह सुनिश्चित करें
- पुष्टि करें कि कोई बाहरी फ़ायरवॉल कनेक्शन को ब्लॉक नहीं कर रहा है
4. त्रुटि संदेश द्वारा कारण
MySQL सर्वर से कनेक्ट नहीं हो पा रहा है
- पोर्ट बंद है
- बाइंड-एड्रेस नहीं बदला गया
- फ़ायरवॉल कनेक्शन को ब्लॉक कर रहा है
उपयोगकर्ता के लिए एक्सेस अस्वीकृत
- गलत उपयोगकर्ता होस्ट विनिर्देशन
- गलत पासवर्ड
- विशेषाधिकार नहीं दिए गए
कनेक्शन टाइम आउट
- क्लाउड-साइड सुरक्षा सेटिंग्स
- नेटवर्क रूटिंग समस्याएँ
महत्वपूर्ण सुरक्षा नोट्स
- उत्पादन वातावरण में \”%\” का उपयोग करने से बचें
- संभव हो तो VPN एक्सेस का उपयोग करें
- SSL/TLS कनेक्शन को सक्षम करने पर विचार करें
- रिमोट रूट लॉगिन कभी न दें
जब MariaDB शुरू नहीं हो पाता है तो ट्रबलशूटिंग (विफल त्रुटि)
① सेवा स्थिति जांचें
sudo systemctl status mariadb
② विस्तृत लॉग जांचें
sudo journalctl -xe
sudo cat /var/log/mysql/error.log
③ सामान्य कारण
- कॉन्फ़िगरेशन फ़ाइल सिंटैक्स त्रुटियां
- डिस्क स्पेस अपर्याप्त
- पोर्ट संघर्ष (MySQL पहले से चल रहा है)
④ डिस्क स्पेस जांचें
df -h
एक्सेस अस्वीकृत त्रुटि कारणों का सारांश
- गलत पासवर्ड
- गलत होस्ट विनिर्देशन (localhost और % के बीच अंतर)
- FLUSH PRIVILEGES निष्पादित नहीं किया गया
- रूट के लिए मानक लॉगिन का प्रयास (requires
sudo mysql)
बुनियादी प्रदर्शन सुधार (शुरुआती के लिए)
उन्नत ट्यूनिंग की आवश्यकता नहीं है, लेकिन न्यूनतम, निम्नलिखित सेटिंग्स की पुष्टि करें।
① धीमी क्वेरी लॉग सक्षम करें
निम्नलिखित को 50-server.cnf में जोड़ें:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
MariaDB को पुनः आरंभ करें:
sudo systemctl restart mariadb
② इंडेक्स उपयोग की जाँच करें
धीमी क्वेरीज़ में उचित इंडेक्स की कमी हो सकती है।
EXPLAIN SELECT * FROM sample_table WHERE column_name = 'value';
③ सर्वर संसाधनों की जाँच करें
top
htop
यदि मेमोरी अपर्याप्त है, तो अपने सर्वर प्लान को अपग्रेड करने पर विचार करें।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
मैं Ubuntu 22.04 पर MariaDB संस्करण को कैसे लॉक कर सकता हूँ?
apt-mark hold mariadb-server का उपयोग करें।
यदि मैंने इसे भूल गया तो मैं रूट पासवर्ड को कैसे रीसेट करूँ?
आप इसे सेफ मोड में शुरू करके और पासवर्ड को पुनः कॉन्फ़िगर करके रीसेट कर सकते हैं। विस्तृत चरणों के लिए हमारा समर्पित गाइड देखें।
मैं MariaDB पोर्ट नंबर को कैसे बदलूँ?
50-server.cnf को कुछ इस तरह संशोधित करें port = 3307, फिर सेवा को पुनः आरंभ करें।
निष्कर्ष: Ubuntu पर MariaDB का सुरक्षित उपयोग
- डिफ़ॉल्ट रिपॉजिटरी संस्करण का उपयोग सबसे सुरक्षित विकल्प है
- हमेशा mysql_secure_installation चलाएँ
- एप्लिकेशन कनेक्शनों के लिए कभी रूट का उपयोग न करें
- रिमोट एक्सेस को केवल आवश्यक होने पर सक्षम करें
- समस्या निवारण के दौरान, लॉग्स की जाँच प्राथमिकता है
इन चरणों का पालन करके, आप Ubuntu पर एक सुरक्षित और प्रोडक्शन-रेडी MariaDB वातावरण बना सकते हैं।


