MySQL में कमांड लाइन का उपयोग कर SQL फ़ाइल आयात कैसे करें?




command-line import (20)

डेटाबेस आयात करें

  1. ड्राइव पर जाएं:

    command: d:
    
  2. MySQL लॉगिन

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. यह पीडब्ल्यूडी के लिए पूछेगा। इसे दर्ज करें:

    pwd
    
  4. डेटाबेस का चयन करें

    use DbName;
    
  5. फ़ाइल का नाम प्रदान करें

    \.DbName.sql
    

https://code.i-harness.com

मेरे पास phpMyAdmin से निर्यात के साथ एक .sql फ़ाइल है। मैं कमांड लाइन का उपयोग कर इसे एक अलग सर्वर में आयात करना चाहता हूं।

मेरे पास एक विंडोज सर्वर 2008 आर 2 स्थापना है। मैंने .sql फ़ाइल को सी ड्राइव पर रखा, और मैंने इस कमांड को आजमाया

database_name < file.sql

यह काम नहीं कर रहा है मुझे वाक्यविन्यास त्रुटियां मिलती हैं।

  • मैं बिना किसी समस्या के इस फ़ाइल को कैसे आयात कर सकता हूं?
  • क्या मुझे पहले डेटाबेस बनाने की ज़रूरत है?

  1. MySQL कमांड लाइन खोलें
  2. अपनी mysql बिन निर्देशिका का पथ टाइप करें और एंटर दबाएं
  3. Mysql सर्वर के bin फ़ोल्डर के अंदर अपनी SQL फ़ाइल पेस्ट करें।
  4. MySQL में डेटाबेस बनाएँ।
  5. उस विशेष डेटाबेस का उपयोग करें जहां आप SQL फ़ाइल आयात करना चाहते हैं।
  6. source databasefilename.sql टाइप source databasefilename.sql और एंटर करें
  7. आपकी एसक्यूएल फ़ाइल सफलतापूर्वक अपलोड करें।

उस निर्देशिका पर जाएं जहां आपके पास MySQL है।

 c:\mysql\bin\> mysql -u username -p password database_name <
 filename.sql

सभी डेटाबेस को डंप करने के लिए, -all-databases विकल्प का उपयोग करें, और किसी भी डेटाबेस के नाम को अब निर्दिष्ट करने की आवश्यकता नहीं है।

mysqldump -u username -ppassword –all-databases > dump.sql

या आप ऐसा करने के लिए SQLYog जैसे कुछ जीयूआई क्लाइंट का उपयोग कर सकते हैं।


एक डेटाबेस आयात करने के लिए, निम्न आदेश का उपयोग करें।

mysql -u username -p password dbname < dump.sql

एकाधिक डेटाबेस डंप आयात करने के लिए, निम्न आदेश का उपयोग करें।

mysql -u username -p password < dump.sql

कभी-कभी उस डेटाबेस के सर्वर के आईपी ​​पते के साथ-साथ पोर्ट भी परिभाषित करता है ...

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 

कमांड लाइन पर प्रमाण पत्र प्रदान करना एक अच्छा विचार नहीं है। उपर्युक्त उत्तर महान हैं, लेकिन उल्लेख करने के लिए उपेक्षा करते हैं

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

जहां आदि / myhost.cnf एक फ़ाइल है जिसमें होस्ट, उपयोगकर्ता, पासवर्ड होता है, और आप कमांड लाइन पर पासवर्ड उजागर करने से बचते हैं। यहां एक नमूना है,

[client]
host=hostname.domainname
user=dbusername
password=dbpassword

जबकि यहां अधिकांश उत्तर सरल आदेश का जिक्र करते हैं

mysql -u डेटाबेस_user -p <डेटाबेस_file.sql

आज यह काफी आम है कि डेटाबेस और तालिकाओं में utf8-collation है जहां यह आदेश पर्याप्त नहीं है। निर्यातित तालिकाओं में utf8-collation होने के बाद इसे इस आदेश का उपयोग करने की आवश्यकता है:

mysql -u डेटाबेस_user -p --default-character-set = utf8 <डेटाबेस_file.sql

सुरली यह अन्य वर्णमाला के लिए भी काम करती है, सही नोटेशन कैसे दिखाना है यहां देखा जा सकता है:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

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

कमांड के लिए अभी भी अधिक पैरामीटर हैं जो सूचीबद्ध हैं और यहां समझाए गए हैं:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

यदि आप किसी अन्य डेटाबेस-संस्करण का उपयोग मैन्युअल के संबंधित संस्करण की खोज पर विचार करते हैं। उल्लिखित लिंक MySQL संस्करण 5.7 का संदर्भ लें।


जानकारी के लिए मेरे पास सिर्फ डिफ़ॉल्ट रूट + बिना पासवर्ड था, यह सभी उपरोक्त उत्तरों के साथ काम नहीं करता था।

  • मैंने सभी विशेषाधिकारों और पासवर्ड के साथ एक नया उपयोगकर्ता बनाया है। यह काम करता हैं।

  • स्पेस के बिना पासवर्ड।


निर्देशिका पर जाएं जहां आपके पास MySQL निष्पादन योग्य है। पासवर्ड के लिए संकेत देने के लिए उपयोगकर्ता नाम और -p लिए:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql

प्रयत्न:

mysql -u username -p database_name < file.sql

MySQL विकल्प जांचें।

नोट -1: SQL फ़ाइल file.sql के पूर्ण पथ का उपयोग करना बेहतर है।

नोट -2: मूल डेटाबेस के दिनचर्या और ट्रिगर रखने के लिए -R और --triggers का उपयोग करें। वे डिफ़ॉल्ट रूप से प्रतिलिपि नहीं हैं।


मुझे लगता है कि यह उल्लेखनीय है कि आप नीचे दिखाए गए जैसे zcat साथ एक gzipped (संपीड़ित) फ़ाइल भी लोड कर सकते हैं:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name

मेरे लिए काम करने वाला एक समाधान नीचे दिया गया है:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;

मैं पावरहेल 5 के साथ विंडोज 10 का उपयोग कर रहा हूं और मुझे लगभग सभी "यूनिक्स-जैसे" समाधान मिलते हैं जो मेरे लिए काम नहीं कर रहे हैं।

> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+                               ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

मैं इस आदेश का उपयोग कर समाप्त होता है।

> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]

और यह पूरी तरह से काम करता है, उम्मीद है कि यह मदद करता है।

@ के answer के लिए धन्यवाद।


मैंने सोचा कि यह उन लोगों के लिए उपयोगी हो सकता है जो Mac OS X का उपयोग कर रहे हैं:

/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql

xampp को mamp या अन्य वेब सर्वर के साथ बदलें।


यदि आपके पास पहले से ही डेटाबेस dump या sql फ़ाइल आयात करने के लिए निम्न का उपयोग करता है

mysql -u username -p database_name < file.sql

यदि आपको MySQL में प्रासंगिक डेटाबेस (खाली) बनाने की आवश्यकता नहीं है, तो उस पहले के लिए टर्मिनल में या cmd में निम्न आदेश चलाकर MySQL कंसोल पर लॉग ऑन करें

mysql -u userName -p;

और जब संकेत दिया गया पासवर्ड प्रदान करते हैं।

अगला डेटाबेस बनाएं और इसका इस्तेमाल करें

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

फिर डेटाबेस से sql या dump फ़ाइल आयात करें

mysql> source pathToYourSQLFile;

नोट: यदि आपका टर्मिनल उस स्थान पर नहीं है जहां dump या sql फ़ाइल मौजूद है, तो ऊपर के सापेक्ष पथ का उपयोग करें।


विशाल फ़ाइलों को आयात करने के लिए किए गए समय के बारे में: सबसे महत्वपूर्ण बात यह है कि इसमें अधिक समय लगता है क्योंकि MySQL की डिफ़ॉल्ट सेटिंग autocommit = true । आपको अपनी फ़ाइल आयात करने से पहले इसे बंद करना होगा और फिर जांच करें कि आयात कैसे मणि की तरह काम करता है।

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

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

हम कमांड लाइन से एसक्यूएल आयात करने के लिए इस कमांड का उपयोग कर सकते हैं:

mysql -u username -p password db_name < file.sql

उदाहरण के लिए, यदि उपयोगकर्ता नाम root और पासवर्ड password । और आपके पास bank रूप में डेटाबेस नाम है और SQL फ़ाइल bank.sql । फिर, बस ऐसा ही करें:

mysql -u root -p password bank < bank.sql

याद रखें कि आपकी एसक्यूएल फाइल कहां है। यदि आपकी SQL फ़ाइल Desktop फ़ोल्डर / निर्देशिका में है तो डेस्कटॉप निर्देशिका पर जाएं और इस तरह की कमांड दर्ज करें:

~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql

और यदि आप Project निर्देशिका में हैं और आपकी SQL फ़ाइल Desktop निर्देशिका में है। यदि आप इसे Project निर्देशिका से एक्सेस करना चाहते हैं तो आप ऐसा कर सकते हैं:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql


डेटाबेस में आयात करें: -

mysql -u उपयोगकर्ता नाम -p डेटाबेस_नाम </ फ़ाइल पथ / file_name.sql

डेटाबेस से निर्यात करें: -

mysqldump -u उपयोगकर्ता नाम -p डेटाबेस_नाम> / फ़ाइल पथ / file_name.sql

इन आदेशों के बाद प्रॉम्प्ट आपके mysql पासवर्ड के लिए पूछेगा


mysql --user=[user] --password=[password] [database] < news_ml_all.sql




import