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


191

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

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

mysql>c:/nitm.sql;

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



जवाबों:


406

Mysql कंसोल से:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


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


36
यदि आप एक रिश्तेदार संदर्भ बना रहे हैं, तो आपको पथ से पहले स्लैश की आवश्यकता नहीं है। अगर आप रूट से जा रहे हैं, तो/home/user/file.sql
वेस जॉनसन

5
क्या अफ़सोस है कि पसंदीदा में उत्तर जोड़ने का कोई तरीका नहीं है :(
baldrs

4
क्रोम में उन्हें बुकमार्क कहा जाता है, और आप एड्रेस बार में स्टार पर क्लिक कर सकते हैं;)
एंड्रयू

2
@ Arseniusz Arozicki सवाल जोड़ें और आप उत्तर तक पहुंचने में सक्षम होंगे :) यही वह है जो मैं करता हूं।
मांडजा

2
बस इस उत्तर को जोड़ने के लिए कि path/to/file.sqlस्थानीय फ़ाइल सिस्टम पथ है जहाँ mysql क्लाइंट है। ऐसे समय में जहां MySQL सर्वर सर्वर साइड पर पथ की अपेक्षा करता है, IE SELECT ... INTO OUTFILEजो MySQL सर्वर पर पथ में फ़ाइल को छोड़ देता है!
Devy

90

अंत में, मैंने समस्या हल कर दी। मैंने `mysql` फ़ोल्डर के` bin` फ़ाइल में `nitm.sql` फ़ाइल रखी और निम्न सिंटैक्स का उपयोग किया।

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql

और यह काम किया।


8
यह mysql कंसोल से नहीं है जैसा कि ओपी ने पूछा था, लेकिन एक कंसोल से mysql में। रॉबर्ट एंथनी ट्रिबियाना के जवाब में यह वर्णन किया गया है कि इसे mysql कंसोल से कैसे किया जाता है।
halfpastfour.am

यह समस्या को हल करने का सटीक तरीका नहीं है, यह कोई समाधान नहीं है।
आशीष रतन

4
आप लोग जानते हैं कि यह ओपी था जिसने इसका उत्तर दिया?
वेस

अगर आपके mysql को पासवर्ड की आवश्यकता है, तो विधि काम नहीं करेगी, आपको @d -_- b
shellbye

52

यदि आप वैंप का उपयोग कर रहे हैं तो आप यह कोशिश कर सकते हैं। use your_Database_nameपहले टाइप करें ।

  1. अपने wamp सर्वर आइकन पर क्लिक करें और MYSQL > MSQL Consoleफिर उसे चलाएं।

  2. यदि आपके पास पासवर्ड नहीं है, तो बस एंटर करें और टाइप करें:

    mysql> use database_name;
    mysql> source location_of_your_file;

    यदि आपके पास पासवर्ड है, तो आप एक पासवर्ड दर्ज करने का वादा करेंगे। पहले आप पासवर्ड दर्ज करें फिर टाइप करें:

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file जैसा दिखना चाहिए C:\mydb.sql

तो सराहनीय है mysql> source C: \ mydb.sql;

इस तरह का आयात करने वाला sql डंप BIG SQL FILE के लिए बहुत मददगार है।

मैंने अपनी फ़ाइल mydb.sqको निर्देशिका में कॉपी किया है C:। इसे चलाने के लिए पूंजी C: होनी चाहिए

और बस।


1
यह उत्तर WAMP के विशिष्ट प्रतीत होता है, जबकि दिखाया गया कोड MySQL चलाने वाले किसी भी वातावरण से काम करता है जहाँ आप टर्मिनल या कंसोल के माध्यम से MySQL तक पहुँच सकते हैं।
halfpastfour.am

26

विंडोज़ में, यदि उपरोक्त सुझाव आपको कोई त्रुटि देता है (फ़ाइल नहीं मिली या अज्ञात db) तो आप आगे के स्लैश को दोगुना करना चाह सकते हैं:

Mysql कंसोल में:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;

1
मेरे फॉरवर्ड स्लैश ने मेरी विंडोज मशीन में काम किया।
मनोज श्रेष्ठ

17

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

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

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

mysql>source sqlfilename.sql

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

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

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



7

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

mysql> \. c:/nitm.sql;

तुम भी मदद का उपयोग कर सकते हैं

mysql> \?

1
यह काम नहीं किया। जब मैंने mysql> \ का उपयोग किया। c: /nitm.sql; , यह फ़ाइल 'c: \ nitm.sql?' को खोलने में विफल जैसी त्रुटि थी, त्रुटि: 2
kushalbhaktajoshi

क्या आपने इसके बदलाव की कोशिश की है? कुछ अनुप्रयोग C: \ nitm.sql का सम्मान करते हैं
Lmwangi

यह भी ध्यान दें कि अर्धविराम की आवश्यकता नहीं है। इसलिए इसे हटा दें। एक अन्य विकल्प 'cd c:' है तो "\। Nitm.sql"
आज़माएं

1
कृपया टाइप करने से पहले सोचें। 'cd c:' DOS प्रॉम्प्ट के लिए कमांड है mySql कंसोल नहीं।
कुशालभक्तजोशी

1
mysql> \. ~/Downloads/backups/file.sql पूरी तरह से mysql के भीतर काम किया> और टर्मिनल coosalउत्तर से भी काम किया।
gmuhammad

6

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

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

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

use database_name;

उस डेटाबेस का चयन करने के लिए जिसकी आपको आवश्यकता है।

जांचें कि क्या आपकी तालिका वहां है

show tables;

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

source sqlfile.sql;

मैंने अपनी फ़ाइल को C: \ xampp \ mysql \ bin स्थान पर रखा है ताकि sql फ़ाइल के स्थानों के साथ मेल न खा सके।



3

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

charset utf8

अगर आपकी sql फ़ाइल utf-8 में है :)

तो आपको करने की आवश्यकता है:

cmd.exe

mysql -u जड़

mysql> charset utf8

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

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

सौभाग्य ))


3

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

cd whatever directory

mysql - p

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

source myData.sql

किया हुआ


2

कमांड लाइन से (cmd.exe, mysql शेल के भीतर से नहीं) कुछ इस तरह आज़माएँ:

type c:/nite.sql | mysql -uuser -ppassword dbname

मैंने डेटाबेस के लिए कोई पासवर्ड नहीं बनाया है, इसलिए यह पासवर्ड के क्षेत्र में रिक्त है। और मैंने उपर्युक्त वाक्यविन्यास का उपयोग इस तरह किया है c: /nitm.sql | mysql -u रूट -p नाइटम लेकिन यह भी काम नहीं किया। क्या आप इसके साथ मेरी कुछ और मदद कर सकते हैं?
कुशालभक्तजोशी

Omitting -p ने भी काम नहीं किया। यह 'c:' जैसी त्रुटि को आंतरिक या बाहरी कमांड, ऑपरेशनल प्रोग्राम या बैच फ़ाइल के रूप में मान्यता नहीं दी जाती है।
कुशालभक्तजोशी

2

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

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


मैंने पहले ही mysql के SET-statement को हटा दिया है। लेकिन फिर भी त्रुटि होती है।
कुशालभक्तजोशी

आप MySQL कमांड शेल में लॉगिन करने और उसके बाद स्टेटमेंट का उपयोग करने का प्रयास कर सकते हैं: "source c: \ nite.sql"। सही डेटाबेस का चयन करने के लिए मत भूलना।
मैकेल

मैं वास्तव में आपके प्रयास की सराहना करता हूं। धन्यवाद।
कुशालभक्तजोशी

2

मैंने अपना wamp सर्वर डी: ड्राइव में स्थापित किया है, इसलिए यू को कमांड लाइन से निम्न पथ पर जाना है -> (और यदि u ने c: ड्राइव में ur wamp स्थापित किया है, तो बस d: 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"

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


1
mysql>c:/nitm.sql;

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

mysql < c:/nitm.sql

यह भी काम नहीं किया। इसने एरर 1064 <42000> की तरह त्रुटि फेंकी: आपके एसक्यूएल सिंटैक्स में त्रुटि है; पंक्ति 1 पर 'mysql <c: /nitm.sql' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने MySql सर्वर संस्करण से मेल खाने वाले मैनुअल की जाँच करें
kushalbhaktajoshi

1

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

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

यह CCR और KIT डेटाबेस निर्यात करेगा ...

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

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

0

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

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

फ़ाइल नाम के आसपास कोई एकल उद्धरण या डबल उद्धरण नहीं। पथ में '\' के बजाय '/' होगा।


0

आप में से जो इससे जूझ रहे हैं, वे एसओ पर मिल सकने वाले हर संभव जवाब की कोशिश कर रहे हैं। Windows 2012 R2 चलाने वाले VPS पर यहाँ मेरे लिए क्या काम किया गया है:

  1. अपनी एससीएल फ़ाइल को उस स्थान पर रखें जहाँ बिन मेरे लिए स्थित है C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. खुली विंडोज़ कमांड प्रॉम्प्ट (cmd)

  3. Daud C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. अपना पासवर्ड डालें
  5. रन कमांड use [database_name];
  6. कमांड स्रोत के साथ अपनी फ़ाइल आयात करें C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

इसने मेरे लिए यह किया क्योंकि बाकी सब विफल हो गया था। यह आपकी मदद भी कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.