ServBay: मौजूदा MariaDB डेटाबेस डेटा को स्थानीय एनवायरनमेंट में इम्पोर्ट करें
ServBay एक शक्तिशाली स्थानीय वेब डेवलपमेंट एनवायरनमेंट है, जिसमें MariaDB डेटाबेस पैकेज शामिल है। अपने मौजूदा MariaDB डाटाबेस (जैसे किसी अन्य स्थानीय एनवायरनमेंट, रिमोट सर्वर या बैकअप फाइल से) को ServBay की MariaDB में माइग्रेट या इम्पोर्ट करना एक आम आवश्यकता है। यह लेख आपको पूरी प्रक्रिया में मार्गदर्शन करेगा ताकि आपका डेटा सफलतापूर्वक आपके ServBay स्थानीय एनवायरनमेंट में ट्रांसफर हो जाए।
अवलोकन
यह गाइड आपको स्टैंडर्ड MariaDB/MySQL कमांड लाइन टूल्स (mysqldump
और mysql
) का उपयोग कर स्रोत MariaDB इंस्टेंस से डेटा एक्सपोर्ट करने, फिर ServBay के एनवायरनमेंट में लक्ष्य डेटाबेस तैयार करने और अंत में ServBay के MariaDB में डेटा इम्पोर्ट करने की प्रक्रिया बताएगी।
पूर्व आवश्यकताएँ
डेटा इम्पोर्ट करने से पहले कृपया सुनिश्चित करें:
- ServBay macOS पर इंस्टॉल किया गया और चल रहा है: सुनिश्चित करें कि ServBay सही प्रकार से इंस्टॉल और चालू है।
- ServBay में MariaDB पैकेज सक्षम और चल रहा है: ServBay एप्लिकेशन के "पैकेज" लिस्ट में जाएँ और देखें कि MariaDB पैकेज चालू (हरा रंग दिखा रहा है)। यदि नहीं, तो उसे स्टार्ट करें।
- आपके पास सोर्स MariaDB डेटाबेस तक एक्सेस है: सोर्स MariaDB का होस्ट एड्रेस, पोर्ट (यदि डिफ़ॉल्ट नहीं), यूज़रनेम, पासवर्ड और एक्सपोर्ट करने के लिए डेटाबेस का नाम आपको पता होना चाहिए।
- आपको ServBay की MariaDB में लक्ष्य डेटाबेस तक एक्सेस है: आमतौर पर, यह ServBay MariaDB की
root
यूज़र और पासवर्ड होगी। डिफ़ॉल्ट रूप से पासवर्ड खाली हो सकता है या आपने इंस्टॉल/कॉन्फ़िगर के समय सेट किया होगा। यह जानकारी या पासवर्ड रीसेट करने का विकल्प ServBay एप्लिकेशन की डेटाबेस मैनेजमेंट स्क्रीन पर मिलेगा। - पर्याप्त डिस्क स्पेस: ServBay एनवायरनमेंट में उतना स्पेस होना चाहिए जिससे डेटा को इम्पोर्ट किया जा सके।
स्टेप-बाय-स्टेप गाइड
स्टेप 1: सोर्स MariaDB से डेटा एक्सपोर्ट करें
पहले, mysqldump
टूल से सोर्स MariaDB डेटाबेस का डेटा एक SQL फाइल में एक्सपोर्ट करें।
टर्मिनल खोलें: अपने macOS में टर्मिनल खोलें।
एक्सपोर्ट कमांड चलाएँ:
mysqldump
कमांड से अपने सोर्स MariaDB इंस्टेंस से कनेक्ट करें और डेटाबेस को एक्सपोर्ट करें। मालिजिए कि सोर्स डेटाबेस का नामmydatabase_source
है और आपको डेटाmydatabase.sql
नाम की फाइल में सेव करना है।bashmysqldump -u your_source_username -p -h your_source_host -P your_source_port mydatabase_source > mydatabase.sql
1your_source_username
: अपने सोर्स MariaDB का यूज़रनेम डालें।-p
: पासवर्ड प्रॉम्प्ट के लिए।-h your_source_host
: अगर सोर्स MariaDB लोकल नहीं है तो होस्ट एड्रेस डालें। यदि लोकल है और डिफ़ॉल्ट सेटिंग है, तो-h
हटा सकते हैं।-P your_source_port
: यदि सोर्स MariaDB 3306 के जगह कोई और पोर्ट यूज़ कर रही है।mydatabase_source
: सोर्स डेटाबेस का नाम बदलें।> mydatabase.sql
: एक्सपोर्टेड फाइल का नाम और पथ।
बाद में ServBay के एनवायरनमेंट से इस SQL फाइल को आसानी से एक्सेस करने के लिए, इसे ServBay की वेबसाइट रूट डायरेक्टरी के तहत एक टेम्प फोल्डर में रखें, जैसे
/Applications/ServBay/www/temp/mydatabase.sql
। आप चाहें तो पहले करंट डायरेक्टरी में फाइल बना सकते हैं और फिरmv
कमांड से उसे शिफ्ट कर सकते हैं:bashmysqldump -u your_source_username -p mydatabase_source > mydatabase.sql mv mydatabase.sql /Applications/ServBay/www/temp/
1
2नोट: कृपया सुनिश्चित करें कि
/Applications/ServBay/www/temp/
डायरेक्टरी मौजूद हो।
स्टेप 2: ServBay में लक्ष्य MariaDB डेटाबेस तैयार करें
डेटा इम्पोर्ट करने से पहले, ServBay की MariaDB में एक उपयुक्त डेटाबेस बनाना होगा।
ServBay MariaDB से कनेक्ट करें: टर्मिनल खोलें और
mysql
कमांड लिखें। ServBay आम तौर पर Unix socket या localhost के ज़रिए कनेक्शन की अनुमति देता है।bashmysql -u root -p
1आपकी
root
यूज़र की पासवर्ड मांगी जाएगी। डालने के बाद MariaDB की कमांड लाइन ओपन होगी।टिप: अगर पासवर्ड या कनेक्शन की समस्या है, तो ServBay UI में MariaDB पैकेज की सेटिंग और लॉग चेक करें।
लक्ष्य डेटाबेस बनाएं: MariaDB क्लाइंट में जाकर नया डेटाबेस बनाएं (मुमकिन हो तो सोर्स जैसा ही नाम रखें, जैसे
mydatabase
)।sqlCREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
1mydatabase
: अपना वांछित डेटाबेस नाम डालें।CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
: चरित्र सेट और कोलेशन सुचारू इम्पोर्ट के लिए बेहद जरूरी है। इस सेटिंग को सोर्स डेटाबेस के मुताबिक सेट करें।
MariaDB क्लाइंट से बाहर निकलें:
exit;
लिखकर बाहर जाएँ।sqlexit;
1
स्टेप 3: डेटा को ServBay MariaDB में इम्पोर्ट करें
अब, एक्सपोर्ट की गई SQL फाइल को ServBay के MariaDB डेटाबेस में इम्पोर्ट करें।
टर्मिनल खोलें
इम्पोर्ट कमांड चलाएँ:
bashmysql -u root -p mydatabase < /Applications/ServBay/www/temp/mydatabase.sql
1-u root -p
: ServBay MariaDB केroot
यूज़र से कनेक्ट करें।mydatabase
: स्टेप 2 में बनाया गया डेटाबेस का नाम डालें।< /Applications/ServBay/www/temp/mydatabase.sql
: SQL फाइल का वास्तविक पथ दें।
इम्पोर्ट का समय फाइल के आकार के अनुसार अलग-अलग हो सकता है। जब तक पूरा नहीं हो जाता, टर्मिनल में कुछ भी आउटपुट नज़र नहीं आएगा या अगर कोई एरर होगी तो वह दिखाई दे सकती है।
स्टेप 4: डेटा इम्पोर्ट की पुष्टि करें
इम्पोर्ट पूरा हो जाने के बाद, यह सुनिश्चित करें कि डेटा सही तरह से इम्पोर्ट हुआ है।
फिर से ServBay MariaDB से कनेक्ट करें:
bashmysql -u root -p
1डेटाबेस चुनें:
sqlUSE mydatabase;
1mydatabase
: अपने डेटाबेस नाम से बदलें।
डेटा चेक करें: SQL क्वेरी चला कर स्ट्रक्चर और डेटा को वेरिफाई करें।
sqlSHOW TABLES; -- सभी टेबल देखें SELECT COUNT(*) FROM your_table_name; -- किसी टेबल में रिकॉर्ड गिनें SELECT * FROM your_table_name LIMIT 10; -- किसी टेबल के शुरुआती 10 रिकॉर्ड देखें
1
2
3your_table_name
: अपने टेबल के नाम से बदलें।
सोर्स डेटाबेस के डेटा की मात्रा से मिलान करें या सैंपल डेटा देखकर इम्पोर्ट सक्सेस कन्फर्म करें।
संभावित अनुकूलता समस्याओं का समाधान
वैसे तो MariaDB के अलग-अलग वर्ज़न्स में संगतता आमतौर पर अच्छी होती है, लेकिन माइग्रेशन में कई बार कुछ समस्याएँ आ सकती हैं। इनमें से कुछ सामान्य समस्याएँ और उनके उपाय यहाँ दिए गए हैं:
1. कुछ SQL सिंटैक्स असंगत
अगर सोर्स MariaDB पुराना है या उसमें किसी स्पेशल फंक्शन या सिंटैक्स का इस्तेमाल हुआ है, तो एक्सपोर्टेड SQL ServBay पर फेल हो सकता है।
- उपाय:
mydatabase.sql
को एडिट करके, ग़लत SQL सिंटैक्स को सही करें। MariaDB डाक्यूमेंटेशन (MariaDB Documentation) की सहायता लें।
2. स्टोरेज इंजन असंगत या अप्रचलित
पुराने स्टोरेज इंजन (जैसे MyISAM) नए वर्जन्स में डिफ़ॉल्ट या अनुशंसित नहीं हैं।
उपाय: SQL फाइल को एडिट करके
ENGINE=MyISAM
कोENGINE=InnoDB
आदि से बदलें। InnoDB अक्सर सबसे अच्छा विकल्प है।sql-- SQL फाइल में इस तरह की लाइन खोजें: CREATE TABLE `your_table_name` ( -- ... कॉलम्स ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- इसे ऐसे बदलें: CREATE TABLE `your_table_name` ( -- ... कॉलम्स ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1
2
3
4
5
6
7
8
9
3. यूज़र और परमिशन्स का गायब होना
mysqldump
आमतौर पर यूज़र्स और उनकी परमिशन्स को एक्सपोर्ट नहीं करता। इम्पोर्ट के बाद वे अकाउंट्स ServBay में मौजूद नहीं रहेंगे।
उपाय: इम्पोर्ट के बाद, ServBay MariaDB में मैन्युअली यूज़र और परमिशन सेट करें:
sql-- नया यूज़र बनाएं (जैसे 'servbay_user', लोकल कनेक्शन, पासवर्ड 'your_password') CREATE USER 'servbay_user'@'localhost' IDENTIFIED BY 'your_password'; -- इस यूज़र को अपनी डेटाबेस पर सभी अधिकार दें GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'localhost'; -- यदि सभी होस्ट से (शानदार नहीं) कनेक्ट करना हो: -- CREATE USER 'servbay_user'@'%' IDENTIFIED BY 'your_password'; -- GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'%'; -- परमिशन रिफ्रेश करें FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11
12servbay_user
औरyour_password
को अपने यूज़रनेम और पासवर्ड से बदलें।mydatabase
को अपने डेटाबेस नाम से बदलें।@'localhost'
या@'%'
अपने जरूरत के अनुसार बदलें।
4. कैरेक्टर सेट और कोलेशन का असमान होना
यदि सोर्स और लक्ष्य डाटाबेस का कैरेक्टर सेट और कोलेशन अलग है, तो डेटा इम्पोर्ट में कूड़ी (garbage/乱码) आ सकती है, खासकर गैर-ASCII डेटा में।
- उपाय: स्टेप 2 में डेटाबेस बनाते समय सोर्स के समान या बेहतर कम्पैटिबल (जैसे
utf8mb4
) कैरेक्टर सेट व कोलेशन सेट करें। अगर इम्पोर्ट के बाद दिक्कत हो तो डेटाबेस डिलीट करें, SQL फाइल का एनकोडिंग चेक करें, शुरुआत मेंSET NAMES 'utf8mb4';
कमांड डालें, और फिर से इम्पोर्ट करें।
ServBay-विशिष्ट टिप्स
- MariaDB क्रेडेंशियल: जैसा बताया, ServBay MariaDB
root
पासवर्ड ServBay UI में देख/रीसेट कर सकते हैं। - लॉग फाइलें: इम्पोर्ट के एरर्स के लिए ServBay MariaDB की error लॉग्स
/logs
फोल्डर में सामन्यतः मिलती हैं। - परफॉर्मेंस: बड़े डाटाबेस इम्पोर्ट करने पर समय और सिस्टम रिसोर्स ज़्यादा लग सकता है।
सामान्य सवाल-जवाब (FAQ)
प्र. इम्पोर्ट के दौरान प्रक्रिया रुक गई तो क्या करूँ?
उत्तर: इम्पोर्ट टूटने पर आमतौर पर डाटाबेस अधूरा रहता है। बेहतर है कि डेटाबेस (DROP DATABASE mydatabase;
) डिलीट करें, फिर (CREATE DATABASE mydatabase;
) दोबारा बनाएँ, और इम्पोर्ट कमांड दोबारा चलाएँ।
प्र. SQL फाइल बहुत बड़ी है, बेहतर तरीका?
उत्तर: बहुत बड़ी SQL फाइल के लिए कमांडलाइन पर <
का इस्तेमाल मेमोरी और स्पीड के लिए उपयुक्त नहीं है। MariaDB क्लाइंट से लॉगिन करके source
कमांड का इस्तेमाल अधिक अच्छा रहता है:
- कनेक्ट हों:
mysql -u root -p
- डेटाबेस चुनें:
USE mydatabase;
- कमांड चलाएँ:
SOURCE /path/to/your/large_database.sql;
यह तरीका अधिक स्टेबल होता है मगर आप को क्लाइंट के अंदर जाना होता है।
प्र. क्या ServBay UI से डेटा इम्पोर्ट कर सकते हैं?
उत्तर: ServBay UI आमतौर पर पैकेज मैनेजमेंट, वेबसाइट सेटिंग, लॉग्स आदि दिखाता है। डाटाबेस इम्पोर्ट-एक्सपोर्ट के लिए स्टैंडर्ड टूल्स (जैसे कमांडलाइन mysql
/mysqldump
या ग्राफिकल टूल phpMyAdmin/Adminer) बेहतर हैं। ServBay के साथ Adminer इनबिल्ट आता है – इसे ServBay UI से एक्सेस करें, खासकर छोटे डाटाबेस या अगर कमांडलाइन नहीं पसंद करते हों।
निष्कर्ष
मौजूदा MariaDB डाटाबेस को ServBay के MariaDB एनवायरनमेंट में इम्पोर्ट करना एक मानक डेटा माइग्रेशन प्रोसेस है। mysqldump
से डेटा एक्सपोर्ट करके और ServBay में mysql
के माध्यम से इम्पोर्ट करके, आप यह काम आसानी से कर सकते हैं। पहले सभी पूर्व-आवश्यकताएँ जांचें, संभावित संगतता समस्याएँ (जैसे कैरेक्टर सेट, स्टोरेज इंजन, यूज़र परमिशन्स) सुलझाएँ और आखिर में इम्पोर्ट परिणाम वेरिफाई करें। ServBay आपके वेब डेवेलपमेंट वर्कफ़्लो के लिए स्थिर लोकल वातावरण देता है जिसमें आपका MariaDB डेटाबेस बेहतरीन तरीके से चलता है।