MySQL में SQL फ़ाइल आयात करें




database windows (12)

MySQL कंसोल से:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


सुनिश्चित करें कि पथ से पहले कोई स्लैश नहीं है यदि आप किसी सापेक्ष पथ का जिक्र कर रहे हैं ... मुझे यह समझने में थोड़ी देर लग गई! जबरदस्त हंसी

मेरे पास nitm नामक डेटाबेस है। मैंने वहां कोई टेबल नहीं बनाया है। लेकिन मेरे पास एक SQL फ़ाइल है जिसमें डेटाबेस के लिए सभी आवश्यक डेटा शामिल हैं। फ़ाइल nitm.sql जो C:\ drive । इस फ़ाइल का आकार लगभग 103 एमबी है। मैं वैंप सर्वर का उपयोग कर रहा हूँ।

मैंने फ़ाइल आयात करने के लिए MySQL कंसोल में निम्न वाक्यविन्यास का उपयोग किया है:

mysql>c:/nitm.sql;

लेकिन यह काम नहीं किया।


XAMPP पर लोकहोस्ट के लिए। एक cmd विंडो खोलें और टाइप करें

cd C:\xampp\mysql\bin
mysql.exe -u root -p

ध्यान! कोई अर्द्ध-कॉलन बाद- अपना पासवर्ड दर्ज करें और टाइप करें

use database_name;

आपको आवश्यक डेटाबेस का चयन करने के लिए।

जांचें कि आपकी टेबल वहां है या नहीं

show tables;

अपनी एसक्यूएल फ़ाइल से आयात करें

source sqlfile.sql;

एसक्यूएल फ़ाइल के स्थानों के साथ मिश्रण न करने के लिए मैंने अपनी फ़ाइल सी: \ xampp \ mysql \ bin स्थान पर रखी है।


आप लगभग उपयोग कर रहे हैं

mysql> \. c:/nitm.sql;

आप भी सहायता तक पहुंच सकते हैं

mysql> \?

उपयोग करने के लिए मत भूलना

charset utf8

अगर आपकी एसक्यूएल फाइल utf-8 में है :)

तो आपको यह करने की ज़रूरत है:

cmd.exe

mysql -u रूट

mysql> charset utf8

mysql> mydbname का उपयोग करें

mysql> स्रोत सी: \ myfolder \ myfile.sql

सौभाग्य ))


क्या आपके डंप में ऐसी विशेषताएं हैं जो MySQL के आपके संस्करण में समर्थित नहीं हैं? आप प्रारंभिक (और समाप्त) को हटाने की कोशिश भी कर सकते हैं MySQL एसईटी-कथन टिप्पणी की।

मुझे नहीं पता कि आपका डंप MySQL (लाइन एंडिंग्स) के लिनक्स संस्करण से आता है या नहीं?


ठीक है, मैं लिनक्स का उपयोग कर रहा हूं लेकिन मुझे लगता है कि यह विंडोज के लिए भी सच है। आप इसे सीधे कमांड प्रॉम्प्ट से भी कर सकते हैं

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql

या mysql प्रॉम्प्ट के भीतर से, आप इसका उपयोग कर सकते हैं:

mysql>source sqlfilename.sql

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

अब दूसरा दृष्टिकोण (mysql प्रॉम्प्ट के भीतर) का लाभ यह है कि यह स्क्रिप्ट में प्रत्येक अलग MySQL कमांड के लिए एक संदेश प्रदर्शित करता है। यदि यह त्रुटियों का सामना करता है, तो यह mysql त्रुटि संदेश प्रदर्शित करता है लेकिन स्क्रिप्ट के माध्यम से जारी रहता है। यह अच्छा हो सकता है, क्योंकि आप फिर से स्क्रिप्ट चलाने से पहले सभी त्रुटियों को वापस कर सकते हैं और ठीक कर सकते हैं। नकारात्मकता यह है कि यह स्क्रिप्ट में रेखा संख्या प्रदर्शित नहीं करता है जहां त्रुटियों का सामना किया गया था। यह दर्द का थोड़ा सा हो सकता है। लेकिन त्रुटि संदेश वर्णनात्मक हैं ताकि आप शायद यह पता लगा सकें कि समस्या कहां है।

मैं, एक के लिए, सीधे से ओएस-कमांड लाइन दृष्टिकोण पसंद करते हैं।


मैंने डी: ड्राइव में अपना वैंप सर्वर स्थापित किया है, इसलिए आपको अपने कमांड लाइन से निम्नलिखित पथ पर जाना होगा -> (और यदि आपने सी में ड्राइव में अपना वैंप स्थापित किया है तो ड्राइव को बस यहां बदलें: wtih c: here)

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"

यहां रूट है मेरे phpmyadmin पासवर्ड का उपयोगकर्ता phpmyadmin का पासवर्ड है, इसलिए यदि आपने रूट के लिए कोई पासवर्ड सेट नहीं किया है तो उस जगह पर कुछ भी टाइप न करें, db_name डेटाबेस है (जिसके लिए डेटाबेस आप बैकअप ले रहे हैं), backupfile.sql है फ़ाइल जिसमें से आप अपने डेटाबेस का बैकअप चाहते हैं और आप बैकअप फ़ाइल स्थान (डी: \ backupfile.sql) को अपने कंप्यूटर पर किसी अन्य स्थान से भी बदल सकते हैं


यदि आप xampp का उपयोग कर रहे हैं

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql

लिनक्स में मैंने mysql शुरू करने से पहले .sql फ़ाइल वाली निर्देशिका में नेविगेट किया। सिस्टम कर्सर अब फ़ाइल के समान स्थान पर है और आपको पथ की आवश्यकता नहीं होगी। स्रोत myData.sql का उपयोग करें जहां मेरी तिथि आपकी फ़ाइल के नाम से बदल दी गई है।

cd whatever directory

mysql - p

लक्ष्य डीबी कनेक्ट करें

source myData.sql

किया हुआ


विंडोज ओएस में निम्न आदेश मेरे लिए काम करता है।

mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;

फ़ाइल नाम के चारों ओर कोई सिंगल कोट्स या डबल कोट्स नहीं। पथ में '\' के बजाय '/' होगा।


विशेष डेटाबेस निर्यात करें

 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql

यह सीसीआर और केआईटी डेटाबेस निर्यात करेगा ...

विशेष रूप से MySQL इंस्टेंस में सभी निर्यातित डीबी आयात करें (आपको वह होना चाहिए जहां आपकी डंप फ़ाइल है)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql

mysql>c:/nitm.sql;

वह mysql कमांड के आउटपुट को 'nitm.sql;' पर लिख देगा (क्या करना चाहिए ';' माना जाता है?) मान लीजिए कि आपको मूल फ़ाइल की एक प्रति मिली है (इससे पहले कि आप इसे ओवरराइट करें):

mysql < c:/nitm.sql




import